![]() |
1
42
考虑:
现在,假设你有:
在这种情况下,编译器会看到
换句话说,
但是,在这样的背景下:
那个
一切都会成功的。但是,您不能执行以下操作 错误消息显示:
现在,为什么不特例它到处作为一个赤裸裸的名字?
它将类型名和r值合二为一,很快你就不得不吞下类似的东西
|
![]() |
2
7
很有趣。 在Objective-C中,类名有两个角色,作为数据类型和类对象。作为数据类型名称,可以执行以下操作:
作为类对象,类名只能作为消息接收方代表类对象。 这就是为什么你要用
然而,我不认为这个答案能满足你的需要。对我来说,答案是,“是的,你想要的是合理的。但说明书上说的是另一种方式”。 参考文献: The Objective-C Programming Language Page 32, section: "Class Names in Source Code" . |
![]() |
3
2
@约翰和@ryanprayogo——你们都大错特错了。MyClass是一个类,也是一个对象,但不是从NSObject继承的。Objective-C的这种方式有点奇怪,但如果充分解释的话,它实际上非常出色(参见
here
). 不过,这里的答案正如@yehnan所说,类名可以是声明器和强制转换的类型名,也可以是消息的接收者。实施
|
![]() |
4
1
我的第一眼回答是因为[MyClass]返回一个class类型的对象,而MyClass不从class继承。。。 |
![]() |
5
1
|
![]() |
6
-1
因为什么
|
![]() |
7
-1
我认为MyClass实际上是一个元类。您向它发送class消息以获取实际的类(class类型)。 |
![]() |
8
-2
|