Insertion d'un nouvel objet géré dans Core Data

Je suis nouveau à Core Data et je sens que je ne comprends pas. Lorsque vous allez créer un nouvel objet géré, vous devez utiliser la méthode que j'ai collée en bas de la classe NSEntityDescription.

Maintenant cet objet est-il enregistré dans le contexte, c'est juste? Pourquoi avez-vous le insertObject: dans NSManagedContext alors? Cela fonctionne sans invoquer cette méthode après avoir utilisé celle de NSEntityDescription . Quelqu'un pourrait-il expliquer?

NSManagedContext

insertObject:

NSEntityDescription

+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context
0

1 Réponses

You can create NSManagedObject with nil context and then decide whether you want to add it to context or not. You may also like this: Is there a way to instantiate a NSManagedObject without inserting it?

0
ajouté
Ah, donc si vous créez l'instance avec nil comme contexte, alors vous le passerez plus tard à l'insertObject?
ajouté l'auteur LuckyLuke, source
Mais si ce n'est pas l'utilisation prévue comme certains le font remarquer, pourquoi Apple fournit-elle la méthode? Ou passe nil comme contexte normal?
ajouté l'auteur LuckyLuke, source
Okey, mais si vous utilisez la méthode NSEntityDescription vous avez déjà enregistré l'objet retourné avec un contexte et vous n'appelez pas l'insertObject: dans NSManagedContext, n'est-ce pas?
ajouté l'auteur LuckyLuke, source
Okey, merci @adam.
ajouté l'auteur LuckyLuke, source
Exactement. J'ai ajouté un lien à ma réponse pour plus d'informations.
ajouté l'auteur Adam, source
Je l'utilise tout le temps sans aucun problème. La méthode peut être utile lorsque vous avez plusieurs contextes. Ensuite, vous pouvez décider lequel enregistrer.
ajouté l'auteur Adam, source
Oui, exactement. Utilisez uniquement insertObject: lorsque le contexte est nul.
ajouté l'auteur Adam, source