diff --git a/Parse/Parse/PFACL.m b/Parse/Parse/PFACL.m index 935913da6..3a54abc1f 100644 --- a/Parse/Parse/PFACL.m +++ b/Parse/Parse/PFACL.m @@ -101,9 +101,12 @@ - (instancetype)createUnsharedCopy { return newACL; } -- (void)resolveUser:(PFUser *)user { +- (BOOL)resolveUser:(PFUser *)user { if (user != unresolvedUser) { - return; + return YES; + } + if (!user || !user.objectId) { + return NO; } NSMutableDictionary *unresolvedPermissions = self.state.permissions[PFACLUnresolvedKey_]; if (unresolvedPermissions) { @@ -113,6 +116,7 @@ - (void)resolveUser:(PFUser *)user { }]; } unresolvedUser = nil; + return YES; } - (BOOL)hasUnresolvedUser { @@ -259,8 +263,9 @@ - (void)prepareUnresolvedUser:(PFUser *)user { __weak __block void (^weakCallback)(id result, NSError *error) = nil; __block void (^callback)(id result, NSError *error) = [^(id result, NSError *error) { @strongify(self); - [self resolveUser:result]; - [result unregisterSaveListener:weakCallback]; + if ([self resolveUser:result]) { + [result unregisterSaveListener:weakCallback]; + } } copy]; weakCallback = callback; [user registerSaveListener:callback];