Dan*_*ani 41 xcode objective-c
为什么self在Objective-C中使用静态上下文?
我认为这是允许的,然后我遇到了内存错误,花了我一个星期才发现这self不是从类调用其他静态方法而不是键入类名的别名.
Xcode及其编译器似乎非常聪明地找到常见的陷阱,为什么它甚至不会产生类似的警告呢?
Dav*_*ong 84
+)实际上只是特定Class对象的实例方法.(你的思想是否爆炸了?)由于你self在实例方法中有一个self可访问的变量,你自然也可以在类方法中访问一个变量.self指向类本身.[self performAction]在实例方法内部调用此特定实例上的方法一样,您可以[self performClassAction]在类方法内部调用此特定类的方法.Class对象都是子类NSObject.因此,您可以NSObject在任何Class对象上使用任何实例方法.(你的思绪又爆炸了吗?)self只允许在Objective-C方法的上下文中使用.通过"静态上下文",我假设你的意思是在一个类方法中(也就是说,一个方法的签名开头+而不是-.)你的断言" self不是调用其他静态方法的别名"是不正确的.
self 在这些情况下是允许的,这样你就可以:
[Foo bar]将Foo始终使用的实现; [self bar]将使用可用的任何实现self.)| 归档时间: |
|
| 查看次数: |
8519 次 |
| 最近记录: |