J'utilise UimanageDDocument pour gérer mes données. Je crée le modèle et l'utiliser et tout semble fonctionner, mais mes modifications ne sont pas écrites dans le magasin SQLite.
La documentation pour UIManageDDocument dit que l'autosave devrait s'occuper de persister les données à la base de données. , mais cela ne semble pas se produire. p> ceci récupère l'objet que je veux ajouter (et réussir). p> - (void)addItemsObject:(MyItem *)value
{
NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.items];
[tempSet addObject:value];
self.items = tempSet;
}
3 Réponses :
J'ai trouvé mon problème. Il s'avère que j'avais une erreur avec l'objet que j'essayais d'ajouter - j'ai manqué une propriété requise - et sans manuserrorror, rien n'indique qu'il y a un problème. p>
blogué ici ici: http://blog.stevex.net/2011/12/UimanagedDocument-autosave- Dépannage / P>
C'est une excellente trouvaille - le fait que la Coredata dans de nombreux cas permettra à des objets d'être persisté en mémoire, mais ne pas enregistrer sur le disque peut être extrêmement i> trompeur parfois, et le correctif que vous avez donné est génial.
Je pose une réponse qui résume votre lien en cas d'échec de la liaison future :)
Dans ma méthode où je récupère des données du serveur, je crée d'abord les entités et, après cela, j'appelle ces deux méthodes pour enregistrer les modifications apportées au document immédiatement:
[self.document updateChangeCount:UIDocumentChangeDone]; [self.document savePresentedItemChangesWithCompletionHandler:^(NSError *errorOrNil) { ... }];
Touche Prends / Résumé de la liaison @ Stevex:
Assurez-vous d'appeler le En outre, la sous-classement Certaines méthodes de clé vous permettront de voir lors de la transmission de l'automobilisation et du fait de faire des erreurs. p> -UPDaTechageCount de UimanageDDocument Code> ou déclencher un changement enregistré auprès du document
Undomanager Code> . Sinon, le document ne pense pas que cela a besoin de sauver quoi que ce soit. p>
Avec des instruments, je peux voir que les données sont écrites dans le cache de données de base. Mais cela ne se présente pas dans les données de base permet d'économiser de l'instrument, et si je tue et redémarre l'application, mes modifications ont disparu.
J'ai trouvé mon problème. Il s'avère que j'avais une erreur avec l'objet que j'essayais d'ajouter - j'ai manqué une propriété requise - et sans manuserrorror, rien n'indique qu'il y a un problème. Blogué à ce sujet ici: blog.stevex.net/2011/12/... < / a>