diff --git a/Parse/Internal/Object/OperationSet/PFOperationSet.h b/Parse/Internal/Object/OperationSet/PFOperationSet.h index fef191982..5456ffacc 100644 --- a/Parse/Internal/Object/OperationSet/PFOperationSet.h +++ b/Parse/Internal/Object/OperationSet/PFOperationSet.h @@ -65,5 +65,6 @@ - (void)setObject:(id)anObject forKey:(id)aKey; - (void)setObject:(id)anObject forKeyedSubscript:(id)aKey; - (void)removeObjectForKey:(id)aKey; +- (void)removeAllObjects; @end diff --git a/Parse/Internal/Object/OperationSet/PFOperationSet.m b/Parse/Internal/Object/OperationSet/PFOperationSet.m index cf5ea0aee..f1df813af 100644 --- a/Parse/Internal/Object/OperationSet/PFOperationSet.m +++ b/Parse/Internal/Object/OperationSet/PFOperationSet.m @@ -166,6 +166,11 @@ - (void)removeObjectForKey:(id)key { self.updatedAt = [NSDate date]; } +- (void)removeAllObjects { + [self.dictionary removeAllObjects]; + self.updatedAt = [NSDate date]; +} + ///-------------------------------------- #pragma mark - NSFastEnumeration ///-------------------------------------- diff --git a/Tests/Unit/OperationSetUnitTests.m b/Tests/Unit/OperationSetUnitTests.m index 18f0df6b2..91981e8e0 100644 --- a/Tests/Unit/OperationSetUnitTests.m +++ b/Tests/Unit/OperationSetUnitTests.m @@ -103,6 +103,24 @@ - (void)testRemoveObjectForKey { XCTAssertNotEqualObjects(date, operationSet.updatedAt); } +- (void)testRemoveAllObjects { + PFOperationSet *operationSet = [[PFOperationSet alloc] init]; + + operationSet[@"yarr"] = [PFSetOperation setWithValue:@"a"]; + operationSet[@"yolo"] = [PFAddOperation addWithObjects:@[ @"b" ]]; + + XCTAssertNotNil(operationSet[@"yarr"]); + XCTAssertNotNil(operationSet[@"yolo"]); + XCTAssertEqual(operationSet.count, 2); + + NSDate *date = operationSet.updatedAt; + [operationSet removeAllObjects]; + XCTAssertNil(operationSet[@"yarr"]); + XCTAssertNil(operationSet[@"yolo"]); + XCTAssertEqual(operationSet.count, 0); + XCTAssertNotEqualObjects(date, operationSet.updatedAt); +} + - (void)testCopying { PFOperationSet *operationSet = [[PFOperationSet alloc] init]; operationSet[@"yarr"] = [PFSetOperation setWithValue:@"yolo"];