转换object_setInstanceVariable()电弧?(Converting objec

2019-08-02 06:21发布

我想转换的实例

object_setInstanceVariable(self, [key UTF8String], *(id**)addr);

ARC的。 当我尝试使用Xcode中内置的Objective-C的ARC转换器,我得到以下错误:

“object_setInstanceVariable”是不可用:在自动引用计数模式下不可

我应该如何处理这个问题? 我知道我可以把--fno-objc弧为编译器标志,但我非常想使用ARC相反,如果可能的话(我有很多的,我否则将必须手动更改编译器标志目标) 。

(该代码是最初取自NSObject的+ NSCoding和归档由麦克梅奥在Rackspace的移动应用)

Answer 1:

来源: https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html

唯一的其他方法来做到这一点:

void object_setIvar(id object, Ivar ivar, id value);

您需要Ivar值预先,可以通过获得class_getInstanceVariable(Class class, char* name)

总体而言,这将是之前达到同样的效果,而现在是ARC兼容。



文章来源: Converting object_setInstanceVariable() to ARC?