2010-08-05 98 views
0

在我的代码中,我试图访问[NSManagedObject managedObjectContext],但令人惊讶的是它返回。被管理的对象被加载,因为我已经使用[NSManagedObject valueForKey:]成功地访问了它的值。是否有任何情况managedObjectContext返回NSManagedObject属性managedObjectContext没有值

回答

1

如果您使用init直接初始化管理对象而不将其插入到上下文中,那么它可能没有上下文。如果插入它并为上下文传递一个零值,则它将具有一个无上下文。

+0

不,我没有手动初始化管理对象。 – 2010-08-05 23:25:54

+0

不能说没有看到代码。它没有上下文的唯一方法就是永远不要给它一个。我甚至认为你一旦把它分配给它就不会设置它。你如何创建托管对象? – TechZen 2010-08-05 23:37:33

+0

你是对的TechZen,该对象在初始化时被错误地赋予了null的managedObjectContext。谢谢 :) – 2010-08-05 23:55:33

0

我可能是错的,但对我来说ManageObjectContext也被设置为nil NSManagedObject,当这个对象变成了一个错误时,我没有强烈的引用它的上下文。

0

官方documentation说:

可能nil如果接收器已经从它的上下文中删除。如果接收器出现故障,则访问此属性不会导致它触发。