Tre*_*zar 5 c xcode class objective-c ios
我刚刚安装了Xcode 4.6,现在我在我管理的古代代码中遇到了新的错误.
编译器现在抱怨"直接访问objective-c的isa已被弃用,而有利于object_setClass()和object_getClass()"并且不会构建.
所以我的问题是,这是正确的等价物吗?
self->isa = [CustomClass class];
Run Code Online (Sandbox Code Playgroud)
替换为:
object_setClass(self, [CustomClass class]);
Run Code Online (Sandbox Code Playgroud)
谢谢
Lil*_*ard 12
访问isa已经被弃用了一段时间,这些工具并没有告诉你这一点.值得注意的是,至少只要标记指针存在于obj-c中,它就被弃用了.
是的,object_setClass()是适当的替代品.
那说,为什么你甚至需要这个呢?替换对象的类是非常罕见的,我能想到的唯一有效的情况是当你试图动态子类化一个类时,为了将新行为注入到单个实例中而不修改整个类(当然,这可能是你不需要做的事情).
| 归档时间: |
|
| 查看次数: |
4797 次 |
| 最近记录: |