我习惯看到这样id<NSCopying> myVar
或MyObject<NSCopying> myVar
,在那里我们指出问题的变量可以愉快地有NSCopying
方法调用它没有编译器抛出一个不稳定的东西。什么定义为`类的可变<SomeProtocol> myClass`意思?
但最近我发现那个定义的变量像这样的代码:
Class<NSCopying> myClass;
我想知道这是什么,其实就是因为它似乎从上面两个例子稍有不同。我们似乎在说,变量myClass
可以愉快地接受来自NSCopying
的方法调用 - 但具有类的类型能够接受这些变量的方法似乎没有多大意义。
它发生,我认为类类型的变量在技术上是对象本身这可能是困惑我或编译器(可能是我!)。
所以我想我要问:
- 是什么像
Class<NSCopying> myClass;
实际上意味着 - 如何
Class<NSCopying> myClass;
不同的东西像id<NSCopying> myVar
- 哪里能像
Class<NSCopying> myClass;
有意义地使用?
注:
- 我只是用
NSCopying
作为一个例子,是没有被整合到我的使用情况 - 无论我指的
Class
我的意思是对象 - 关键字Class
声明变量那些类型是Class
。我不使用这个作为任何类类型的通用术语。
感谢您的回复。我可能不太清楚我使用“Class”这个词 - 请参阅我的编辑进行澄清。谢谢! – Barjavel
“你只能提供一个类,而不是一个实例”那么,类对象*就是*对象,即实例。 – newacct
@newacct,试图使用容易理解的术语。接受建议以改进描述。 – Wain