Sto cercando di creare un contesto dell'oggetto gestito temporaneo e, dopo alcune schermate dell'utente che inseriscono informazioni, unisco quel contesto con il contesto principale (per garantire che non ci siano "incomplete") gli oggetti sono inseriti). Questo è il modo Creo il mio contesto temporanea e come inserire un oggetto in esso:La proprietà managedObjectContext di NSManagedObject è nil
if (!self.someManagedObject) {
NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:@[[NSBundle mainBundle]]];
NSPersistentStoreCoordinator *storeCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
[storeCoordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:nil];
NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:storeCoordinator];
self.someManagedObject = [NSEntityDescription insertNewObjectForEntityForName:@"SomeObject" inManagedObjectContext:managedObjectContext];
NSLog(@"%@", self.someManagedObject.managedObjectContext);
}
Questa è una parte di viewDidLoad
. Nella console mostra che il contesto dell'oggetto gestito ha un valore.
Tuttavia, subito dopo l'istruzione if (anche all'interno viewDidLoad
, self.someManagedObject.managedObjectContext
è nulla. Posso capire perché la variabile locale non sarebbe più disponibile (si va semplicemente fuori del campo di applicazione), ma la proprietà dell'oggetto gestito dovrebbe essere ancora essere impostato , giusto?
so di poter creare una proprietà per memorizzare il contesto oggetto gestito, ma preferirei farlo funzionare in questo modo.
è 'someObject' uguale a' someManagedObject'? – aforaudrey
Oops, sì. Prima ho messo 'someObject', ma poi volevo chiarire che si tratta di un oggetto NSManagedObject. –
Hai controllato che 'self.someManagedObject' è non-zero? Supponendo che 'insertNewObject ...' non sia riuscito o la tua proprietà sia peculiare, questo spiegherebbe cosa stai vedendo. – Tommy