File tree Expand file tree Collapse file tree 2 files changed +14
-14
lines changed Expand file tree Collapse file tree 2 files changed +14
-14
lines changed Original file line number Diff line number Diff line change @@ -2314,30 +2314,28 @@ - (void)removeObjectForKey:(NSString *)key {
23142314}
23152315
23162316- (void )revert {
2317- @synchronized (lock) {
2317+ @synchronized (self. lock ) {
23182318 if ([self isDirty ]) {
2319- NSMutableArray *removedKeys = [NSMutableArray array ];
2320- [removedKeys addObjectsFromArray: [self allKeys ]];
2319+ NSMutableSet *persistentKeys = [NSMutableSet setWithArray: [self ._state.serverData allKeys ]];
2320+
2321+ PFOperationSet *unsavedChanges = [self unsavedChanges ];
23212322 for (PFOperationSet *operationSet in operationSetQueue) {
2322- for ( NSString *key in operationSet. keyEnumerator ) {
2323- [removedKeys addObject: key ];
2323+ if (operationSet != unsavedChanges ) {
2324+ [persistentKeys addObjectsFromArray: [operationSet.keyEnumerator allObjects ] ];
23242325 }
23252326 }
2326-
2327- PFOperationSet *changes = [self unsavedChanges ];
2328- for (NSString *key in changes.keyEnumerator ) {
2329- [changes removeObjectForKey: key];
2330- }
2331-
2327+
2328+ [unsavedChanges removeAllObjects ];
2329+ [_availableKeys intersectSet: persistentKeys];
2330+
23322331 [self rebuildEstimatedData ];
2333- [_availableKeys minusSet: [NSSet setWithArray: removedKeys]];
23342332 [self checkpointAllMutableContainers ];
23352333 }
23362334 }
23372335}
23382336
23392337- (void )revertObjectForKey : (NSString *)key {
2340- @synchronized (lock) {
2338+ @synchronized (self. lock ) {
23412339 if ([self isDirtyForKey: key]) {
23422340 [[self unsavedChanges ] removeObjectForKey: key];
23432341 [self rebuildEstimatedData ];
Original file line number Diff line number Diff line change @@ -186,7 +186,9 @@ - (void)testKeyValueCoding {
186186- (void )testRevert {
187187 NSDate *date = [NSDate date ];
188188 NSNumber *number = @0.75 ;
189- PFObject *object = [PFObject _objectFromDictionary: @{ @" yarr" : date, @" score" : number } defaultClassName: @" Test" completeData: YES ];
189+ PFObject *object = [PFObject _objectFromDictionary: @{ @" yarr" : date,
190+ @" score" : number }
191+ defaultClassName: @" Test" completeData: YES ];
190192 object[@" yarr" ] = @" yolo" ;
191193 [object revert ];
192194 XCTAssertEqualObjects (object[@" yarr" ], date);
You can’t perform that action at this time.
0 commit comments