我在我的项目中使用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
对象之前检查它是否有效?
答案 0 :(得分:3)
只要父母和孩子之间的关系是指针,你就不必先保存孩子。 PFRelation的工作方式不同,但父对象的保存也会保存与指针相关的子节点。 Cloud Code就是如此,我很确定它也适用于该设备。
此答案中的一些细节:https://www.parse.com/questions/cloud-code-efficient-hierarchy-saving
答案 1 :(得分:0)
是的,这样做......实际上有很多方法可以保存内容
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:
请参阅Here了解更多