我原本以爲我的問題的答案是一個簡單的'是',但是自從我做了一些閱讀之後,我又一次看到了這個問題。我可以在應用程序中有多個獨立的CoreData堆棧嗎?
我的意圖是使用模塊化代碼,它允許我從多個代碼段中進行選擇以嚮應用程序添加各種功能。舉個例子,我可能有一個允許安全瀏覽的瀏覽器組件,一個調查組件來接受用戶調查,還有一個「核心」組件是應用程序的主要用途 - 無論是顯示菜單還是顯示地圖的位置。
我想讓每個獨立模塊擁有自己的CoreData堆棧。除了應用程序本身介導的任何內容(使用委託模型完成的應用程序通信)之外,它們不以任何方式彼此對話或互相干擾。瀏覽器的書籤列表和白名單網站與調查的調查數據列表不同,它與應用程序的「核心」功能完全分離。如果他們需要彼此交談,他們可以通過委託調用來實現,這包括告訴應用程序'我需要一個瀏覽器來顯示X頁面','用這個ID顯示調查',或者最後是「我是完成後,返回到主應用程序「。
我開始意識到沒有辦法確定給定的NSManagedObjectContextDidSaveNotification是否屬於給定的核心數據堆棧。並且,可能的是,在mergeChangesFromContextDidSaveNotification:方法中向MOC提供來自不同核心數據堆棧的通知將是一個壞主意。 (我還擔心當您嘗試喂MOC自己的通知回它會發生什麼,但是這件事情我可以很輕鬆地實驗)
單獨堆棧的目的是爲了避免額外的工作,試圖手動合併每個應用程序的模型 - 它還允許我相對容易地更新模塊的模型,因爲我可以在一個地方更改它們讓git Submodules處理拉動變化。我將不得不通過配置來閱讀。 – RonLugge