在一个应用程序中,可能有不同的UIViewController
需要共享相同的NSManagedObject
。我通常做到以下几点:在UIViewControllers中传递NSManagedObjects的食谱
@interface CustomController : UIViewController
@property (nonatomic, retain) ProductNSManagedObject* productManaged;
@end
后来,当我istantiate CustomController
我把它注射类似如下:
customController.productManaged = ....
做一次,CustomController
负责将其释放。
这种方法效果很好(我不知道它是否正确),但是当控制器需要这个对象但是它不是控制器的直接子对象时该怎么做?例如
MainController -> ChildController -> SubChildController -> ....
其中MainController
有管理的对象。
我是否必须创建大量的中介属性,还是需要执行新的NSFetchRequest
或其他?
相同的方面可以应用于NSManagedObjectContext
。搜索周围我发现上下文可以从拥有它的应用程序委托中获取(如果有的话)。但是这种方法缺乏灵活性,因为Marcus Zarra在passing-around-a-nsmanagedobjectcontext-on-the-iphone中写道。
有什么建议吗?先谢谢你。
感谢您的回复,并为您的建议+1。但是你的意思是什么*这个独立的对象可以持有对所有共享对象的引用,并将它们提供给正在构建的对象,这样你的任何常规对象都不得不保留对某些东西的引用,只是将它作为依赖项传递给其他对象。*?也许当你创建你的示例项目时,让我知道。 – 2012-02-24 08:41:43
我刚读完你的答案。它们很有用。该方法似乎非常干净,但我不明白的是如何引用与* Factory * factory = [[Factory alloc] init] *在整个应用程序中连接的对象*工厂*。再次感谢你。 – 2012-02-24 08:48:06
查看编辑,示例项目应该清楚。 – zoul 2012-02-24 08:56:19