子类UITableViewController或使用商店(MVCS)?

时间:2013-05-30 07:20:51

标签: iphone ios core-data ios6

我正在开发我的第一个iOS应用程序,并且我正在尝试找出在使用CoreData时操纵我的模型的最佳/推荐方法。

我见过人们将UITableViewController子类化(从NSFetchedResultsController的文档页面复制代码,参见Standford iOS course),然后在TableViewControllers上继承这最后一个类。

我已经看到人们使用MVCS模式,商店负责处理大部分或全部模型。

我的应用程序的iOS版本将使用相当多的TableViewControllers,但在iPad版本中,我将尽可能远离它们。

使用CoreData时的最佳做法是什么? 我知道这个问题可能听起来很主观,但也许给出这两个(或任何其他)模式的优点和缺点会对我有所帮助,即使它们对你们中的许多人来说都是显而易见的。

2 个答案:

答案 0 :(得分:1)

我已经为很多应用程序使用了Core Data。

我建议使用Magical Record让一切变得更轻松http://cocoapods.org/?q=magical%20record(Cocoapods也很容易添加框架)。

查看魔法记录的github页面以查看一些用法示例。

使用TableViews使用NSFetchedResultsController,如本教程http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller中所示。除了在创建NSFetchedResultsController时使用魔法记录函数[Blah fetchAll...]

现在,只要您更新表格上的数据,就可以使用表格视图,它将自动更新视图。

答案 1 :(得分:1)

我建议使用MVC设计模式。数据检索过程应该由为模型编写的服务来处理。如果您可以根据要求将其建模为几层,那就更好了。 Coredata< - Repository< - Servie< - VC将是您可以使用的基本模型。您的控制器可以访问服务,服务将访问repo。您可以使用repos使用方法建模对Coredata的调用,并使用Manage对象上下文执行NSFetchRequest。

您可以使用该服务在tableViewController类,UITableViewDataSource委托方法实现中处理项检索。