在苹果documentation 与类名不同,协议(protocol)名不具有全局可见性。他们生活在自己的命名空间中。
这是什么意思,因为文档没有详细说明。我已经尝试过并且我已经制作了两个具有相同名称的协议(protocol),但它们在不同的文件中,编译器显示警告重复协议(protocol)。
当我在单个文件中import
两个协议(protocol)时,第一个协议(protocol)import
隐藏了其他协议(protocol)减速。所以首先导入的协议(protocol)方法有效。其他给出警告
那么这行是什么意思呢?我无法正确理解它。
最佳答案
在其他编程语言中,您可以在不同的目录或包中拥有相同的类名。
在 Objective C 中,类名是全局的,因此没有 namespace 的概念。名称必须是唯一的。不能有两个 Employee 类。
但对于协议(protocol),您可以在不同的文件中定义相同的协议(protocol),并且根据您导入的文件,您可以看到该协议(protocol)。
如果你不导入那个头文件,你就不知道那个协议(protocol)。 - 这可能是文档中说“协议(protocol)没有全局可见性”的意思
同时,如果您对同一协议(protocol)有两个定义,则只会遵循第一个。事实上,编译器会向您显示一个明确的警告。
关于iphone - Objective-C 中的协议(protocol)命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786062/