在它自己的 .h 文件中定义的 objective-c 协议(protocol)?

标签 objective-c protocols

除非我遗漏了什么,否则我将协议(protocol)定义放在哪个 .h 文件中似乎是任意的。我什至想知道它是否可以在它自己的 .h 文件中...(在 Java 中,它在它自己的文件中)

最佳答案

我认为协议(protocol)的位置取决于您如何使用它。很多时候,协议(protocol)用于定义另一个类的委托(delegate)或数据源的功能。如果是这种情况,我认为您可以安全地将协议(protocol)定义放在其他类的顶部 - 因为它们必然会一起使用。

如果您要定义一个协议(protocol)来代替共享基类,您应该将它放在一个单独的文件中。例如,我有几个实现“操作”协议(protocol)的不同类。我的一些其他函数期望接收一个实现协议(protocol)的对象,并且不太关心实际的类。在这种情况下,将协议(protocol)定义放在它自己的头文件中是有意义的,这样您就可以自己包含它。

不过,Benny 是对的 - 从技术上讲,无论您将它放在哪里(只要它在使用前包含在某处),它都会定义

关于在它自己的 .h 文件中定义的 objective-c 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/958289/

相关文章:

http - 在哪里可以找到超文本 ORB 间协议(protocol) (HTIOP) 的规范?

objective-c - iOS:释放正在使用的对象 (ARC)

iphone - Objective-C类的问题?

ios - 如何声明一个全局变量以在应用程序的主视图和反面 View 中使用?苹果手机

javascript - "navigator.msLaunchUri"in IE Edge 总是返回成功

swift - 在 Swift 中采用协议(protocol)

objective-c - 为什么 NSInvocation getReturnValue : lose object?

ios - 读取文档文件夹中的文本文件 - Iphone SDK

haskell - Clojure 中的协议(protocol)和多方法在多态性方面不如 Haskell 中的类型类强大的原因是什么?

java - 什么是 Java 服务器和 C++ 客户端之间好的 RPC 框架?