2012-12-06 32 views
1

我有一個關於應用程序的剛性問題,因爲蘋果在docSingleMan for NSManagedObjectContext?剛性?依賴注入?

這使得應用程序體系結構剛性

我同意這一點。每個uiviewcontroller應該...不依賴於當前的應用程序流,但UIApplication委託是相當穩定的,你總是可以調用該代理。

我聽說關於nsmanagedobjectcontext的第二個參數是依賴注入。每個對象應該只有真正需要的對象,但是如果必須通過幾個不需要它們的控制器來傳遞managedobjectcontext,但是它們被放置在期望的控制器和源控制器之間,那麼它實際上不是依賴注入,更好的解決方案是我想單身。

你認爲怎麼樣?也許你有其他想法通過控制器傳遞managedobjectcontext?

+0

我有一個存儲在全局單例類中的託管對象上下文的應用程序,用於查找任何VC。這對我來說可以。無論這是最好的編程習慣,我都會讓更好的程序員回答。 – emrys57

回答

1

原則上,提供託管對象上下文的單例沒有任何問題。如果你要在你的應用中使用一個上下文,那真的沒關係。但是,如果您正在執行後臺提取和保存操作,並且如果您將核心數據併發方法與父子上下文一起使用,則此方法很快就會出現問題。

+0

好吧,我明白了......所以,在你看來,蘋果勸阻使用singleton for managedobjectcontext被誇大了? – badeleux

+0

不,蘋果的聲明是正確的。它*是一個更剛性的設計。他們還聲明「**按慣例**」,被管理的對象上下文被傳遞給視圖控制器。請參閱Core Data Snippets中的[訪問核心數據棧](http://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/CoreDataSnippets/Articles/stack.html)。 – Mundi