我刚刚安装了 Xcode 4.6,现在我管理的古老代码中出现了新错误。
编译器抱怨“直接访问 Objective-C 的 isa 已被弃用,取而代之的是 object_setClass() 和 object_getClass()”,并且该项目将无法构建。
所以请告诉我,是:
object_setClass(self, [CustomClass class]);
适当替换:
self->isa = [CustomClass class];
谢谢你!
访问isa
已经被弃用了一段时间,工具只是没有告诉你这一点。值得注意的是,至少自从 obj-c 中存在标记指针以来,它就已被弃用。
是的,object_setClass()
是合适的替代品。
也就是说,为什么你甚至需要这个?替换对象的类是适当的情况是极其罕见的,我能想到的唯一有效的情况是当您尝试动态子类化一个类以便将新行为注入到单个实例中而不修改整个类时(当然,您可能不需要这样做)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)