在应用程序中,可能会存在需要共享同一个NSManagedObject
的不同UIViewController
。 我通常会采取以下方式:
@interface CustomController : UIViewController
@property (nonatomic, retain) ProductNSManagedObject* productManaged;
@end
当我实例化CustomController
时,我会像以下这样注入它:
customController.productManaged = ....
一旦完成,CustomController
负责释放它。
这种方法运作良好(我不知道是否正确),但当控制器需要该对象但不是具有该对象的控制器的直接子代时该怎么办?例如:
MainController -> ChildController -> SubChildController -> ....
在这里,MainController
拥有托管对象。
我是否需要创建许多中间属性或者执行一个新的 NSFetchRequest
或其他操作?
相同的方法也可以应用于 NSManagedObjectContext
。搜索后,我发现上下文可以从拥有它的应用程序委托中获取(如果有)。但是,正如 Marcus Zarra 在 passing-around-a-nsmanagedobjectcontext-on-the-iphone 中所写的那样,这种方法缺乏灵活性。
有什么建议吗?提前感谢您。