2014-05-14 84 views
5

我在我的項目中使用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對象之前檢查它是否工作?

回答

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更多

+0

謝謝,這是更多的是,雖然節省了家長時,層次結構是否被保存的問題?大多數時候我使用'saveInBackgroundWithBlock:'只是想知道如何單獨保存孩子:D – Fogmeister