File tree 2 files changed +14
-14
lines changed 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 {
2314
2314
}
2315
2315
2316
2316
- (void )revert {
2317
- @synchronized (lock) {
2317
+ @synchronized (self. lock ) {
2318
2318
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 ];
2321
2322
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 ] ];
2324
2325
}
2325
2326
}
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
+
2332
2331
[self rebuildEstimatedData ];
2333
- [_availableKeys minusSet: [NSSet setWithArray: removedKeys]];
2334
2332
[self checkpointAllMutableContainers ];
2335
2333
}
2336
2334
}
2337
2335
}
2338
2336
2339
2337
- (void )revertObjectForKey : (NSString *)key {
2340
- @synchronized (lock) {
2338
+ @synchronized (self. lock ) {
2341
2339
if ([self isDirtyForKey: key]) {
2342
2340
[[self unsavedChanges ] removeObjectForKey: key];
2343
2341
[self rebuildEstimatedData ];
Original file line number Diff line number Diff line change @@ -186,7 +186,9 @@ - (void)testKeyValueCoding {
186
186
- (void )testRevert {
187
187
NSDate *date = [NSDate date ];
188
188
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 ];
190
192
object[@" yarr" ] = @" yolo" ;
191
193
[object revert ];
192
194
XCTAssertEqualObjects (object[@" yarr" ], date);
You can’t perform that action at this time.
0 commit comments