在苹果文档 中与类名不同,协议名没有全局可见性。他们生活在自己的命名空间中。
这是什么意思,因为文档没有详细说明。我已经尝试过,我已经制作了两个同名的协议,但它们位于不同的文件中,编译器显示警告重复协议。
当我import
将两个协议都放在单个文件中时,第一个协议import
隐藏了其他协议减速。所以第一个导入的协议方法有效。其他给出警告
那么这条线是什么意思呢?我无法正确理解它。
在苹果文档 中与类名不同,协议名没有全局可见性。他们生活在自己的命名空间中。
这是什么意思,因为文档没有详细说明。我已经尝试过,我已经制作了两个同名的协议,但它们位于不同的文件中,编译器显示警告重复协议。
当我import
将两个协议都放在单个文件中时,第一个协议import
隐藏了其他协议减速。所以第一个导入的协议方法有效。其他给出警告
那么这条线是什么意思呢?我无法正确理解它。
在其他编程语言中,您可以在不同的目录或包中拥有相同的类名。
在 Objective C 中,类名是全局的,因此没有命名空间的概念。名称必须是唯一的。不能有两个 Employee 类。
但是对于协议,您可以在不同的文件中定义相同的协议,并且根据您导入的文件,您可以看到该协议。
如果你不导入那个头文件,你就不知道那个协议。- 这可能是文档中说“协议没有全局可见性”时的意思
同时,如果您对同一协议有两个定义,则只会尊重第一个定义。事实上,编译器会向你显示一个明确的警告。
您可以拥有多个具有相同名称的协议,但不能在同一个类中使用。前者将隐藏后者。