子类UITableViewController或使用一个Store (MVCS)



我正在制作我的第一个iOS应用程序,我试图找出使用CoreData时操作我的模型的最佳/推荐方法。

我看到人们子类UITableViewController(复制代码从NSFetchedResultsController的文档页,见斯坦福iOS课程),然后子类这最后一个类在他们的TableViewControllers。

我也见过有人使用MVCS模式,在这种模式中,商店负责处理大部分或全部模型。

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

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

我在很多应用中都使用了Core Data。

我推荐使用Magical Record使一切变得更容易http://cocoapods.org/?q=magical%20record (Cocoapods也使添加框架变得非常容易)。

请查看github页面的magical record,以查看一些使用示例。

在tableview中使用NSFetchedResultsController,就像本教程http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller中一样。除了在创建NSFetchedResultsController时使用神奇的记录函数[Blah fetchAll...]

现在有了表视图,当你更新表上的数据时,它会自动更新视图

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

你可以在你的tableViewController类中处理项目检索,UITableViewDataSource委托方法通过使用服务实现。

最新更新