我將我的NSManagedObject
實例繼承並在父類中設置NSManagedObjectModel
和NSManagedObjectContext
。在父級方法中訪問數據時,當我使用[self valueForKey:@"id"]
時,我的objectModel似乎已經釋放或重置。這裏是一個例子:使用valueForKey後釋放的NSManagedObjectModel
//this outputs NSManagedObjectModel
NSLog(@"model is %@",NSStringFromClass([model class]));
NSLog(@"this id is %@", [self valueForKey:@"id"]);
//this now outputs __NSCFString
NSLog(@"model is %@",NSStringFromClass([model class]));
爲什麼要用valueForKey做到這一點?
你不應該把'NSManagedObjectContext'放在一個單例中。這是一個糟糕的設計選擇。 'NSManagedObjectContext'應該通過依賴注入傳遞給視圖控制器。另外,'AppDelegate'不是一個單身人士。 –
一旦我將這些方法從我的模型父類中移出,並轉移到另一個輔助類中,我就可以開始正常工作,我的對象不再鬆散引用。我想我只是想太聰明。謝謝。 – bernieberg