我想转换一个实例
object_setInstanceVariable(self, [key UTF8String], *(id**)addr);
到 ARC。当我尝试使用 Xcode 内置的 Objective-C ARC 转换器时,出现以下错误:
'object_setInstanceVariable' is unavailable: not available in automatic reference counting mode
我该如何处理这个问题?我知道我可以将 --fno-objc-arc 作为编译器标志,但如果可能的话,我非常想改用 ARC(我有很多目标,否则我将不得不手动更改编译器标志) .
(代码最初取自 Mike Mayo 在 Rackspace Mobile Apps 的 NSObject+NSCoding and Archiver)
最佳答案
唯一的其他方法是:
void object_setIvar(id object, Ivar ivar, id value);
你需要事先得到Ivar
值,可以通过class_getInstanceVariable(Class class, char* name)
获取。
总体而言,这将实现与以前相同的效果,同时现在与 ARC 兼容。
关于ios - 将 object_setInstanceVariable() 转换为 ARC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13196727/