解析 – 保存相关对象
我在我的项目中使用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:
请参阅此处了解更多