2014-05-14 34 views
5

Tôi đang sử dụng Parse cho phần cuối trong dự án của mình.Phân tích cú pháp - lưu các đối tượng liên quan

Như bạn có thể tưởng tượng có một vài mối quan hệ trong mô hình dữ liệu. Rất nhiều thời gian tôi tạo ra một "cha mẹ" đối tượng và tất cả các "trẻ em" của nó tại cùng một thời điểm và lưu tất cả để Parse.

Bây giờ, khi thực hiện việc này là cần thiết để lưu riêng từng trẻ? Điều này cũng cho các tập tin vv ...

dụ đầu tiên - Thêm một avatar cho một đối tượng người dùng

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

OK, vì vậy trên thiết bị tôi có thể tham khảo các @"avatar" chìa khóa vào người dùng và có được avatar tập tin. Nhưng làm thế nào điều này nên được lưu vào Parse?

Nếu tôi làm ...

[[PFUser currentUser] saveInBackground]; 

này sẽ lưu các tập tin mới đã được thêm vào? Hoặc tôi có cần phải lưu tập tin đầu tiên và chờ cho điều này thành công trước khi thêm nó vào đối tượng người dùng và sau đó lưu đối tượng người dùng?

Thứ hai ví dụ

Tạo một cây của các đối tượng ...

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"]; 

Làm thế nào tôi có thể tiết kiệm bộ sưu tập này của đối tượng?

Tôi có thể chỉ cần [family saveInBackground];?

Hoặc tôi có phải trải qua một quá trình tiết kiệm từng đối tượng Person trước và kiểm tra xem nó có hoạt động trước khi lưu đối tượng family không?

Trả lời

3

Chừng nào mối quan hệ giữa cha mẹ và con là con trỏ , bạn không cần phải cứu đứa trẻ trước. PFRelation hoạt động khác nhau, nhưng một lưu trên đối tượng cha mẹ cũng sẽ lưu các con có liên quan như con trỏ. Điều này đúng với Cloud Code, và tôi khá chắc nó cũng đúng với thiết bị.

Một số chi tiết trong câu trả lời này: https://www.parse.com/questions/cloud-code-efficient-hierarchy-saving

0

Có mà sẽ làm ... trong thực tế có một loạt các phương pháp để tiết kiệm các nội dung

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: 

Tham khảo Here để biết thêm

+0

Cảm ơn, nó đã được nhiều câu hỏi về việc liệu hệ thống phân cấp được lưu khi lưu phụ huynh mặc dù? Hầu hết thời gian tôi đang sử dụng 'saveInBackgroundWithBlock:' chỉ cần tự hỏi về việc phải lưu riêng từng cá nhân: D – Fogmeister

Các vấn đề liên quan