我在我的项目中使用Parse作为后端。解析 - 保存相关对象
正如你会想到的那样,数据模型中有很多关系。很多时候我在同一时间创建一个“父”对象及其所有“子”,并将它们全部保存到Parse中。
现在,这样做时是否需要单独保存孩子?同样的文件等等
第一个例子 - 添加头像用户对象
UIImage *image = // image from camera
NSData *pngData = UIImagePNGRepresentation(image);
PFFile *imageFile = [PFFile fileWithData:pngData];
[[PFUser currentUser] setObject:imageFile forKey:"avatar"];
OK,所以在设备上我可以参考用户的@"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
对象之前检查它是否工作?
谢谢,这是更多的是,虽然节省了家长时,层次结构是否被保存的问题?大多数时候我使用'saveInBackgroundWithBlock:'只是想知道如何单独保存孩子:D – Fogmeister