objective-c - 为什么您希望类私下遵守协议(protocol)?

标签 objective-c cocoa-touch protocols class-extensions

我一直在看 Apple 的 MVCNetworking example project AppDelegate 的部分接口(interface)定义让我感到困惑。在 .h 文件中我们有这个:

@interface AppDelegate : NSObject
{
  ...

但是在 .m 文件中我们有这个:

@interface AppDelegate () <SetupViewControllerDelegate>
  ...

所以这个类私下遵守协议(protocol)。但是为什么要这样做而不是在 header 中公开声明呢?

最佳答案

一般来说,你应该尽可能少地公开曝光。 AppDelegate 可以是 SetupViewController 的委托(delegate)这一事实可能在 AppDelegate 呈现 SetupViewController 时使用。没有其他类应该将 AppDelegate 设置为其他 SetupViewController 的委托(delegate),因此公开宣传该一致性是没有意义的。

关于objective-c - 为什么您希望类私下遵守协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8233524/

相关文章:

ios - 如何设置可在应用程序委托(delegate)中访问的 XCUItest 类的参数

ios - 如何重用单个 xib 作为 tableview 的节标题?

ios - 是否可以将图像添加到 UISearchController 中的范围过滤器按钮?

ios - 自动将 NSString 转换为 NSLocalizedString?

android - 用于在 Android 中发送推送通知的协议(protocol)

objective-c - tableview 上的 setediting = true 使单元格附件 View 消失?

iphone - 导航堆栈中的 TableView 不会动画返回

iphone - 如何使用条形按钮单击关闭弹出窗口

protocols - super 终端使用什么通讯协议(protocol)?

swift - 使用协议(protocol)类型附加到数组时结构的值发生变化