【发布时间】:2012-11-04 22:18:17
【问题描述】:
我真的很想弄清楚我的托管对象上下文消失在哪里。
我最初是在我的应用程序委托中实例化它,然后将其传递到 NSWindowController 中的保留属性中:
self.TPWC = [[TestPanelWindowController alloc] initWithWindowNibName:@"TestPanel"];
self.TPWC.managedObjectContext = self.managedObjectContext;
self.TPWC.persistentStoreCoordinator = self.persistentStoreCoordinator;
[TPWC.window makeKeyAndOrderFront:nil];
然后我有一个按钮,它应该实例化 NSManagedObject 并将其插入到托管对象上下文中,如下所示:
NSManagedObject *newInstanceOfSomeEntity =
[NSEntityDescription insertNewObjectForEntityForName:@"SomeEntity"
inManagedObjectContext:self.managedObjectContext];
此时,self.managedObjectContext 不知何故变成了 nil。
我已经在 windowDidLoad 中插入了一个断点,并且我可以确认,此时我们确实有一个有效的 NSManagedObjectContext 实例,但它在 viewDidLoad 和尝试插入托管对象之间不知何故变成了 nil。
我尝试创建一个自定义初始化程序来设置 NSManagedObjectContext,但它仍然为零。
Core Data 对我来说很新,我很难理解出了什么问题。
【问题讨论】:
-
你的财产是强财产吗?
-
您的
@property managedObjectContext是如何定义的? -
是的,这是一个强大的属性。
-
id 在上下文中设置一个 WATCHpoint,以便您看到它何时被修改
标签: objective-c xcode macos core-data nsmanagedobjectcontext