diff --git a/PNObject.podspec b/PNObject.podspec index 709aea1..f0936ae 100644 --- a/PNObject.podspec +++ b/PNObject.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "PNObject" -s.version = "0.5.6" +s.version = "0.5.7" s.summary = "PNObject is a simple replica of the more complex ParseObject" # This description is used to generate tags and improve search results. diff --git a/Pod/Classes/PNClasses/PNInstallation.h b/Pod/Classes/PNClasses/PNInstallation.h index 74e33d4..c750019 100644 --- a/Pod/Classes/PNClasses/PNInstallation.h +++ b/Pod/Classes/PNClasses/PNInstallation.h @@ -8,6 +8,12 @@ #import "PNObject.h" +typedef NS_ENUM(NSInteger, PNInstallationType) { + PNInstallationTypeNew = 0, + PNInstallationTypeChange, + PNInstallationTypeNone, +}; + @interface PNInstallation : PNObject /** @@ -28,7 +34,7 @@ * * @return RETURN YES if token is not set o token changes, NO if token is the same of old token. */ -- (BOOL) setDeviceTokenFromData:(nullable NSData *)deviceTokenData; +- (PNInstallationType) setDeviceTokenFromData:(nullable NSData *)deviceTokenData; ///-------------------------------------- #pragma mark - PNInstallation Properties diff --git a/Pod/Classes/PNClasses/PNInstallation.m b/Pod/Classes/PNClasses/PNInstallation.m index f1920cb..3c4f307 100644 --- a/Pod/Classes/PNClasses/PNInstallation.m +++ b/Pod/Classes/PNClasses/PNInstallation.m @@ -69,9 +69,9 @@ static bool isFirstAccess = YES; return INSTALLATION; } -- (BOOL) setDeviceTokenFromData:(NSData *)deviceTokenData { +- (PNInstallationType) setDeviceTokenFromData:(NSData *)deviceTokenData { - BOOL response = NO; + PNInstallationType response = PNInstallationTypeNone; _deviceTokenData = deviceTokenData; @@ -80,9 +80,12 @@ static bool isFirstAccess = YES; stringByReplacingOccurrencesOfString:@">" withString:@""] stringByReplacingOccurrencesOfString: @" " withString: @""]; - if (!_deviceToken || (_deviceToken && ![ptoken isEqualToString:_deviceToken])) { + if (!_deviceToken) { - response = YES; + response = PNInstallationTypeNew; + } + else if (_deviceToken && ![ptoken isEqualToString:_deviceToken]) { + response = PNInstallationTypeChange; } _oldDeviceToken = _deviceToken; diff --git a/Pod/Classes/PNObject.h b/Pod/Classes/PNObject.h index 9d9e432..ffa11a3 100644 --- a/Pod/Classes/PNObject.h +++ b/Pod/Classes/PNObject.h @@ -61,10 +61,11 @@ extern NSString* _Nonnull const PNObjectMappingSelector; #pragma mark - PNObject Properties ///-------------------------------------- +@property (nonatomic, strong, nonnull) NSString *objID; /** * <#Description#> */ -@property (nonatomic, strong, nonnull) NSString * objID; +@property (nonatomic, strong, nonnull) NSString * localObjID; /** * <#Description#> */ diff --git a/Pod/Classes/PNObject.m b/Pod/Classes/PNObject.m index c21c30d..9804a5e 100644 --- a/Pod/Classes/PNObject.m +++ b/Pod/Classes/PNObject.m @@ -40,7 +40,8 @@ NSString * const PNObjectMappingSelector = @"selector"; #pragma mark PNObjectSubclassing + (NSDictionary *) objcetMapping { - NSDictionary *mapping = @{@"objID":@"objID", + NSDictionary *mapping = @{@"objID":@"uuid", + @"localObjID":@"localObjID", @"createdAt":@"created_at", }; return mapping; @@ -87,7 +88,7 @@ NSString * const PNObjectMappingSelector = @"selector"; NSAssert([[self class] conformsToProtocol:@protocol(PNObjectSubclassing)], @"Subclass object must conform to PNObjectSubclassing"); - _objID = [[NSProcessInfo processInfo] globallyUniqueString]; + _localObjID = [[NSProcessInfo processInfo] globallyUniqueString]; self.objectModel = [PNObjectModel sharedInstance]; [self.objectModel setPersistencyDelegate:self]; @@ -146,7 +147,7 @@ NSString * const PNObjectMappingSelector = @"selector"; if ([[self class] isSubclassOfClass:[PNObject class]]) { NSAssert([[self class] conformsToProtocol:@protocol(PNObjectSubclassing)], @"Subclass object must conform to PNObjectSubclassing Protocol"); - _objID = [[NSProcessInfo processInfo] globallyUniqueString]; + _localObjID = [[NSProcessInfo processInfo] globallyUniqueString]; self.objectModel = [PNObjectModel sharedInstance]; [self.objectModel setPersistencyDelegate:self]; @@ -454,6 +455,7 @@ NSString * const PNObjectMappingSelector = @"selector"; _JSON = nil; _JSONObjectMap = nil; _objID = nil; + _localObjID = nil; _createdAt = nil; }