Skip to content

Remove mutable container functionality. #97

Closed
@nlutsenko

Description

@nlutsenko

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.

cc @grantland, @hallucinogen, @richardjrossiii

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions