Closed
Description
Mutable containers right now power the ability to mutate NSArray, NSDictionary, PFGeoPoint after setting them on PFObject.
Here is an example:
NSMutableArray *array = [NSMutableArray array];
PFObject *object = [PFObject objectWithClassName:@"Example"];
object[@"array"] = array;
[object save];
// This will save an object with empty `array` field.
[array addObject:@"test1"];
[object save];
// This will save an object with `array: [ test1 ]` field
This issue is for tracking proposal to remove this functionality from our SDKs. Here are just a few reasons:
- Inconsistency with Cocoa(iOS/OSX) conventions, where you always pass an object by copy, specifically where related to closest thing to Parse - Core Data.
- Inconsistency when fetching an object, where it will remove the mutable containers tracking, as the data will be overwritten by new data from the server.
- Slower Local Datastore performance - a lot of time spent on pinning objects to LDS is spent in checkpointing all mutable containers.