gpt4 book ai didi

ios - 由于弃用而替换 self->isa

转载 作者:可可西里 更新时间:2023-11-01 04:18:55 27 4
gpt4 key购买 nike

我刚刚安装了 Xcode 4.6,现在我管理的一个古老代码中出现了新错误。

编译器提示“直接访问 objective-c 的 isa 被弃用,取而代之的是 object_setClass() 和 object_getClass()”,项目将无法构建。

所以请告诉我,是:

object_setClass(self, [CustomClass class]);

适当的替换:

self->isa = [CustomClass class];

谢谢!

最佳答案

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

是的,object_setClass() 是合适的替代品。

就是说,为什么您甚至需要这个?替换对象的类是合适的是极其罕见的,我能想到的唯一有效的情况是当你试图动态地子类化一个类以便在不修改整个类的情况下将新行为注入(inject)单个实例时(当然,您可能不需要这样做)。

关于ios - 由于弃用而替换 self->isa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com