我习惯于看到诸如id<NSCopying> myVaror之类的东西MyObject<NSCopying> myVar,我们在其中声明所讨论的变量可以愉快地NSCopying调用它的方法,而编译器不会抛出一个不稳定的问题。
但我最近发现一些代码定义了一个像这样的变量:
Class<NSCopying> myClass;
我想知道这实际上意味着什么,因为它似乎与前两个示例略有不同。似乎我们在说变量myClass可以愉快地接受来自的方法调用NSCopying——但是让类类型能够接受这些实例变量方法似乎没有多大意义。
我突然想到,类类型的变量本身就是技术对象,这可能让我或编译器(可能是我!)感到困惑。
所以我想我在问:
Class<NSCopying> myClass;类似的东西实际上是什么意思Class<NSCopying> myClass;与类似的东西有什么不同id<NSCopying> myVarClass<NSCopying> myClass;在哪里可以有意义地使用类似的东西?
笔记:
- 我只是
NSCopying作为一个例子使用,并不是我的用例不可或缺的 - 无论我在哪里提到,
Class我的意思是 Obj-C 关键字Class,用于声明类型为Class. 我没有将其用作任何类类型的通用术语。