在一個應用程序中,可能有不同的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