微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 由于Xcode 4.6弃用而取代self-> isa

我刚刚安装了 Xcode 4.6,现在我在我管理的古代代码中遇到了新的错误.

编译器现在抱怨“直接访问objective-c的isa已被弃用,而有利于object_setClass()和object_getClass()”并且不会构建.

所以我的问题是,这是正确的等价物吗?

self->isa = [CustomClass class];

替换为:

object_setClass(self,[CustomClass class]);

谢谢

解决方法

访问isa已经被弃用了一段时间,这些工具并没有告诉你这一点.值得注意的是,至少只要标记指针存在于obj-c中,它就被弃用了.

是的,object_setClass()是适当的替代品.

那说,为什么你甚至需要这个呢?替换对象的类是非常罕见的,我能想到的唯一有效的情况是当你试图动态子类化一个类时,为了将新行为注入到单个实例中而不修改整个类(当然,这可能是你不需要做的事情).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐