Sto utilizzando Parse per il back-end nel mio progetto.Parse - salvataggio degli oggetti correlati
Come si immagina ci siano parecchie relazioni nel modello di dati. Un sacco di volte creo un oggetto "genitore" e tutti i suoi "bambini" nello stesso momento e li salvo tutti in Parse.
Ora, quando è necessario salvare i bambini individualmente? Lo stesso vale per i file ecc ...
Primo esempio - Aggiunta di un avatar a un oggetto utente
UIImage *image = // image from camera
NSData *pngData = UIImagePNGRepresentation(image);
PFFile *imageFile = [PFFile fileWithData:pngData];
[[PFUser currentUser] setObject:imageFile forKey:"avatar"];
OK, quindi sul dispositivo che posso fare riferimento la chiave @"avatar"
sull'utente e ottenere l'avatar file. Ma come dovrebbe essere salvato su Parse?
Se lo faccio ...
[[PFUser currentUser] saveInBackground];
Sarà questo salvare il nuovo file che è stato aggiunto? O devo prima salvare il file e aspettare che questo abbia successo prima di aggiungerlo nell'oggetto utente e quindi salvare l'oggetto utente?
Secondo esempio
Creazione di un albero di oggetti ...
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"];
Come faccio a salvare questo collezione di oggetti?
Posso fare solo [family saveInBackground];
?
Oppure devo prima eseguire un processo di salvataggio di ogni oggetto Person
e controllare che funzioni prima di salvare l'oggetto family
?
Grazie, era più una questione di se la gerarchia viene salvata quando si salva il genitore però? La maggior parte delle volte sto usando 'saveInBackgroundWithBlock:' mi chiedevo solo di dover salvare i bambini individualmente: D – Fogmeister