Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 取代自修复>;这是因为反对_Ios_Objective C_Xcode_Class - Fatal编程技术网

Ios 取代自修复>;这是因为反对

Ios 取代自修复>;这是因为反对,ios,objective-c,xcode,class,Ios,Objective C,Xcode,Class,我刚刚安装了Xcode 4.6,现在我管理的一个古老代码中出现了新的错误 编译器抱怨“直接访问objective-c的isa已被弃用,取而代之的是object_setClass()和object_getClass()”,并且该项目不会生成 那么请告诉我: object_setClass(self, [CustomClass class]); 适当替换: self->isa = [CustomClass class]; 谢谢大家! 访问isa已经被弃用了一段时间,工具只是没有告诉您这一点

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

编译器抱怨“直接访问objective-c的isa已被弃用,取而代之的是object_setClass()和object_getClass()”,并且该项目不会生成

那么请告诉我:

object_setClass(self, [CustomClass class]);
适当替换:

self->isa = [CustomClass class];

谢谢大家!

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

是的,
object\u setClass()
是合适的替代品


也就是说,你为什么需要这个?替换一个对象的类是非常罕见的,我能想到的唯一有效的情况是,当您试图动态地对一个类进行子类化,以便在不修改整个类的情况下向单个实例注入新的行为(当然,这是您可能不需要做的事情).

谢谢您的确认。是的,我同意这个代码的设计很奇怪。不是我干的。如果我在野外遇到它,我会点燃代码然后尖叫着跑掉。我只是在一个我被告知要实现的库中发现了这样的代码(
array->isa=\u jkarraycass;
)。(哦,它是2011年JSONKit的一部分)xcode是一个IDE,它不反对任何东西。较新的objc SDK