diff --git a/Parse/PFObject.m b/Parse/PFObject.m index b4228ed91..74fab352d 100644 --- a/Parse/PFObject.m +++ b/Parse/PFObject.m @@ -350,29 +350,31 @@ + (BOOL)canBeSerializedAsValue:(id)value // @param saved A set of objects that we can assume will have been saved. // @param error The reason why it can't be serialized. - (BOOL)canBeSerializedAfterSaving:(NSMutableArray *)saved withCurrentUser:(PFUser *)user error:(NSError **)error { + NSDictionary *dictionaryRepresentationCopy; @synchronized (lock) { - // This method is only used for batching sets of objects for saveAll - // and when saving children automatically. Since it's only used to - // determine whether or not save should be called on them, it only - // needs to examine their current values, so we use estimatedData. - if (![[self class] canBeSerializedAsValue:_estimatedData.dictionaryRepresentation - afterSaving:saved - error:error]) { - return NO; - } - - if ([self isDataAvailableForKey:@"ACL"] && - [[self ACLWithoutCopying] hasUnresolvedUser] && - ![saved containsObject:user]) { - if (error) { - *error = [PFErrorUtilities errorWithCode:kPFErrorInvalidACL - message:@"User associated with ACL must be signed up."]; - } - return NO; + dictionaryRepresentationCopy = _estimatedData.dictionaryRepresentation; // This copies the dictionary representation + } + // This method is only used for batching sets of objects for saveAll + // and when saving children automatically. Since it's only used to + // determine whether or not save should be called on them, it only + // needs to examine their current values, so we use estimatedData. + if (![[self class] canBeSerializedAsValue: dictionaryRepresentationCopy + afterSaving:saved + error:error]) { + return NO; + } + + if ([self isDataAvailableForKey:@"ACL"] && + [[self ACLWithoutCopying] hasUnresolvedUser] && + ![saved containsObject:user]) { + if (error) { + *error = [PFErrorUtilities errorWithCode:kPFErrorInvalidACL + message:@"User associated with ACL must be signed up."]; } - - return YES; + return NO; } + + return YES; } // This saves all of the objects and files reachable from the given object. diff --git a/Parse/Resources/Parse-OSX.Info.plist b/Parse/Resources/Parse-OSX.Info.plist index 0cfd2e981..926050e25 100644 --- a/Parse/Resources/Parse-OSX.Info.plist +++ b/Parse/Resources/Parse-OSX.Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/Parse/Resources/Parse-iOS.Info.plist b/Parse/Resources/Parse-iOS.Info.plist index 2dc2564bc..7acd6edfc 100644 --- a/Parse/Resources/Parse-iOS.Info.plist +++ b/Parse/Resources/Parse-iOS.Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/Parse/Resources/Parse-tvOS.Info.plist b/Parse/Resources/Parse-tvOS.Info.plist index 9c70b7e38..130bc4690 100644 --- a/Parse/Resources/Parse-tvOS.Info.plist +++ b/Parse/Resources/Parse-tvOS.Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/Parse/Resources/Parse-watchOS.Info.plist b/Parse/Resources/Parse-watchOS.Info.plist index 9c70b7e38..130bc4690 100644 --- a/Parse/Resources/Parse-watchOS.Info.plist +++ b/Parse/Resources/Parse-watchOS.Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist b/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist index 8ed835a84..367e1db57 100644 --- a/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist +++ b/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist b/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist index 137821965..bac9845ed 100644 --- a/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist +++ b/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist b/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist index 5cb6a0681..67f9b8093 100644 --- a/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist +++ b/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist b/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist index 791044217..84ba830e0 100644 --- a/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist +++ b/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist b/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist index 58d5a5e6c..4a7b18d9b 100644 --- a/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist +++ b/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist index 4da1203c2..3fcb38d46 100644 --- a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist +++ b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist index a77d400d5..75af9c389 100644 --- a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist +++ b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion diff --git a/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist b/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist index b136a4999..4efe49f83 100644 --- a/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist +++ b/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion