解析 – 保存相关对象

我在我的项目中使用Parse作为后端。

正如您想象的那样,数据模型中存在很多关系。 很多时候我会在同一时刻创建一个“父”对象及其所有“子”,并将它们全部保存到Parse。

现在,这样做是否有必要单独保存孩子? 文件等相同……

第一个示例 – 将头像添加到用户对象

UIImage *image = // image from camera NSData *pngData = UIImagePNGRepresentation(image); PFFile *imageFile = [PFFile fileWithData:pngData]; [[PFUser currentUser] setObject:imageFile forKey:"avatar"]; 

好的,所以在设备上我可以引用用户的@"avatar"键并获取头像文件。 但是如何将它保存到Parse呢?

如果我做…

 [[PFUser currentUser] saveInBackground]; 

这会保存添加的新文件吗? 或者我是否需要先保存文件并等待此操作成功,然后将其添加到用户对象中,然后保存用户对象?

第二个例子

创建一个对象树……

 PFObject *family = [PFObject objectWithClassName:@"Family"]; [family setObject:@"Smith" forKey:@"familyName"]; PFObject *person1 = [PFObject objectWithClassName:@"Person"]; [person1 setObject:@"Bob" forKey:@"name"]; PFObject *person2 = [PFObject objectWithClassName:@"Person"]; [person2 setObject:@"Alice" forKey:@"name"]; PFObject *person3 = [PFObject objectWithClassName:@"Person"]; [person3 setObject:@"Chris" forKey:@"name"]; [family setObject:@[person1, person2, person3] forKey:@"members"]; 

我如何保存这个对象集合?

我可以做[family saveInBackground];

或者我是否必须首先保存每个Person对象并在保存family对象之前检查它是否有效?

只要父母和孩子之间的关系是指针,您就不必先保存孩子。 PFRelation的工作方式不同,但父对象的保存也会保存与指针相关的子节点。 对于Cloud Code来说也是如此,我很确定它也适用于该设备。

这个答案中的一些细节: https : //www.parse.com/questions/cloud-code-efficient-hierarchy-saving

是的,这样做……事实上,有很多方法可以保存内容

 Saving an Object to Parse – save – save: – saveInBackground – saveInBackgroundWithBlock: – saveInBackgroundWithTarget:selector: – saveEventually – saveEventually: Saving Many Objects to Parse + saveAll: + saveAll:error: + saveAllInBackground: + saveAllInBackground:block: + saveAllInBackground:target:selector: 

请参阅此处了解更多