iOS/Cocoa 数据 Controller 类 - 这是标准做法吗?

标签 ios class cocoa-touch controller

我已经完成了前两个在线教程“您的第一个 iOS 应用程序”和“您的第二个 iOS 应用程序”。后者使用数据 Controller 类,如 here 所示。 .

我现在正在学习“iOS 编程:The Big Nerd Ranch Guide 3rd Edition”。它似乎没有引用数据 Controller 类,但是,似乎将方法放入模型类本身(即放入 MyClass.m,而不是 MyClassDataController.m) .

我相信最终一切都会变得清晰,但是有人可以给我一个更广泛的引用框架吗?使用数据 Controller 类只是一种风格决定吗?我看过其他几本书,它们似乎也没有提到数据 Controller 。

最佳答案

这是个好问题!老实说,这两种方法都是可以接受的。 Aaron Hillegrass(BNR 书籍的合著者)是一位非常受尊敬的开发人员(他甚至曾经培训过 Apple 工程师),显然您看到的 Apple 示例代码可以说是“出自马口”。

为什么 Apple 建议您在他们的应用程序中使用单独的数据 Controller ?好吧,如果您的数据 Controller 符合相关协议(protocol),您可以将其直接插入到 UITableView 之类的东西中。如果你正在编写一个通用的 iPad/iPhone 应用程序,它对两种设备有不同的 View ,那么这可能非常有用。如果您正在使用 Storyboard,这也非常有用。正如苹果所说:

A data controller class allows other objects in the app to access objects [...] without needing to know anything about how the data model is implemented.

但这可能有点矫枉过正:有很多应用程序使用这种模式,它们将逻辑放入 View Controller 本身。两者各有利弊。换句话说:当您浏览 Apple 放在其开发者网站上的示例代码时,您会发现很多应用程序遵循 Apple 在“您的第二个 iOS 应用程序”中建议的模式教程!

关于iOS/Cocoa 数据 Controller 类 - 这是标准做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14106832/

相关文章:

ios - 我如何使用 Fabric 的/Crashlytics 的代码来检查设备是否越狱?

javascript - 变量中的运算符字符停止 jQuery 定位

swift - 我有两个 UIViewControllers,我需要比较它们是否是 UIViewController 的同一个子类

c++ - 不可用的公共(public)变量

ios - 为什么我的 UIView de 在删除观察者后第一次没有初始化,但之后却初始化了?

ios - Localizable.strings (base) x 英文

ios - iOS 权限的自定义 Ui

ios - 如何让透明背景看到主屏幕?

ios - 添加我的第一个 pod

iphone - 应用程序启动时间限制是否仅限于applicationDidFinishLaunching?