所以我與核心數據掙扎。我發現有很多方法可以做同樣的事情,而且,如果你試圖建立使用故事板,你需要閱讀所有的教程,比去年年長配有翻譯片的例子UIManagedDocuments應用。今天的問題是關於在添加新的託管對象時尋找最佳實踐。我見過的例子這兩種方式:在Core Data中創建新對象:先創建還是返回?
創建一個表視圖控制器,新的管理對象,並賦予新的閃耀管理對象的下級(點擊+後)「添加」視圖控制器獲取用戶輸入爲所有的對象屬性。這看起來很簡單,返回的對象很容易理解,因爲它包含所有的單個屬性。但我見過的示例代碼中的「取消」按鈕刪除傳入的管理對象這一「添加」視圖控制器,然後解僱本身之前調用保存上下文。功能,但在我的肩膀上的MVC培訓侏儒在我尖叫有這個下屬添加視圖刪除對象和恐怖直接調用保存上下文。來自Apple的配方示例代碼似乎使用此方法。
發送沒什麼可添加視圖控制器,並將它發回的委託調用返回的各個屬性作爲一個單獨傳遞的參數的表視圖控制器。所以返回方法變得非常長:controller:(UIViewController *)controller didReturnFirstName:(NSString *)firstName andLastName:(NSString *)lastName andStreetAddress:(NSString *)and ... and ... and ..但是這是SO與MVC教條一致,因爲託管對象在接收到所有單個屬性時會在表視圖控制器中創建,並且「添加」視圖永遠不會觸及模型(核心數據),或者在用戶更改時丟棄未使用的託管對象他們的頭腦。
即使鏈式委託方法,我還在與自己爭論這是一個更好的方法。來自那些與這兩種形式生活的人的評論和想法將是一個受歡迎的補充。
謝謝。
我認爲數據模型可以將1個託管對象發送給視圖控制器來顯示。例如,您的聯繫人。當您查看一個聯繫人時,我不希望保存的數據模型將每個字段單獨傳遞給視圖控制器,而是傳遞一個管理對象,該對象聯繫該聯繫人的所有信息。對於刪除一個對象,也許把它作爲視圖控制器的目標動作,然後讓視圖控制器消息的數據類刪除該對象... – Nick
謝謝,尼克。我同意發送一個對象到視圖控制器來顯示是一致的和堅實的策略。我正在詢問創建過程,您需要(可能)將一個新項目添加到數據庫。您是否在準備segue方法中創建新的託管對象並將其傳遞給新控制器,或者等待並在下級視圖返回後創建新對象? – Unsure1
+1這個問題完全是我想問的問題,而且還有一些基本的東西,它應該放在蘋果文檔或任意數量的教程中。 – Rhubarb