簡體   English   中英

核心數據功能的最佳實踐

[英]Best practice for core data function

當您有多個視圖控制器進行類似的核心數據調用時,在使用核心數據的iPhone應用程序中使用的最佳設計是什么?

目前我有一個應用程序,它有幾個視圖控制器,它們都執行類似的功能,如向實體添加對象,刪除實體等。我想有幾種方法來處理這個:

  1. 每個視圖控制器都有自己的addItem:blah類。 在這種情況下,這會產生一些復制意大利面

  2. 創建一個具有核心數據方法的超類,並從該類繼承。 必要時覆蓋

  3. 創建一個類別,以便視圖控制器的所有實例都具有這些方法,而無需子類化

  4. 創建一個可以調用的數據管理器單例。 這可能很有用,所以我可以在每個視圖控制器之外排隊請求和進行數據管理。 下行是一般來說這是一個壞主意

CoreData和ViewControllers不需要彼此了解。

UIViewControllers不是MVC世界中的傳統控制器。 它們更接近於視圖 - 我更喜歡用這個來創建它們(大多數Apple示例代碼都有很多ModelController代碼 - 可能是為了簡化示例)。

我喜歡創建ModelControllers並讓我的ViewController管理我的Views,並為ViewControllers提供了ModelController的實例。

我的ModelController將管理我的模型,加載,編輯,刪除等...我仍然將我的Model類暴露給我的ViewControllers,但是Views永遠不會離開ViewController。 你永遠不會在ModelController中看到一個View。

這樣做的好處是,如果您以后創建一個iPad應用程序 - 您的模型及其行為方式完全獨立於您的ViewControllers,那么當您為iPad應用程序創建一些新的UIViewControllers時 - 您可以插入您的ModelControllers。

您的ModelController可能有一個具有重復CRUD方法的父類。

另外....

名為MagicalRecord的庫https://github.com/magicalpanda/MagicalRecord將Active Record模式添加到NSManagedObjects。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM