iOS / Cocoa数据控制器类 - 这是标准做法吗?

时间:2012-12-31 23:40:00

标签: ios class cocoa-touch controller

我已经完成了前两个在线教程"您的第一个iOS应用程序"和#34;你的第二个iOS应用程序"。后者使用数据控制器类,如here所示。

我现在正在通过" iOS编程:The Big Nerd Ranch Guide 3rd Edition"。然而,它似乎没有引用数据控制器类,并且似乎将方法放入模型类本身(即,进入MyClass.m,而不是MyClassDataController.m)。

我确信所有人最终都会变得清晰,但有人可以给我一个更广泛的参考框架吗?使用数据控制器类只是一种风格决定吗?我已经查看了其他几本书,他们似乎也没有参考数据控制器。

2 个答案:

答案 0 :(得分:6)

这是一个很好的问题!说实话,这两种方法都是可以接受的。 Aaron Hillegrass(他是BNR书籍的共同作者)是一位非常受人尊敬的开发人员(他甚至曾经培训过Apple工程师),显然你看过的Apple示例代码是“从马的嘴里”,可以这么说。

为什么Apple建议您在其应用中使用单独的数据控制器?好吧,如果您的数据控制器符合相关协议,您可以将其直接插入UITableView之类的内容。如果您正在编写一个通用的iPad / iPhone应用程序,这两个设备具有不同的视图,那么这可能非常有用。如果您正在使用故事板,这也非常有用。正如Apple所说:

  

数据控制器类允许应用程序中的其他对象访问对象[...],而无需了解有关数据模型的实现方式。

但这可能有点过分:有很多应用使用这种模式,他们将这种逻辑抛入视图控制器本身。这两者都有利有弊。换句话说:当您浏览Apple开发者网站上的示例代码时,您会发现许多的应用程序遵循Apple在“您的第二个iOS应用程序”中建议的模式教程!

答案 1 :(得分:1)

将其视为将数据(模型)与控制器和视图分离的中间方式。

一个好的练习,一旦你进一步了解(优秀的,恕我直言)BNR书,就是使用Core Data而不是数据控制器重写Birdwatching示例。

这项工作并不多 - (我已经完成了),如果您真的尝试将其用于简单的事情,那么您将更好地理解Core Data。

祝你好运。