加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 19:31:32 所属栏目:百科 来源:网络整理
导读:我刚刚安装了 Xcode 4.6,现在我在我管理的古代代码中遇到了新的错误. 编译器现在抱怨“直接访问objective-c的isa已被弃用,而有利于object_setClass()和object_getClass()”并且不会构建. 所以我的问题是,这是正确的等价物吗? self-isa = [CustomClass class
我刚刚安装了 Xcode 4.6,现在我在我管理的古代代码中遇到了新的错误.

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

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

self->isa = [CustomClass class];

替换为:

object_setClass(self,[CustomClass class]);

谢谢

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读