- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想转换一个实例
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/
有谁知道如何使用 object_setInstanceVariable 设置结构变量?它适用于引用类型: object_setInstanceVariable(obj, "_variable", re
我想转换一个实例 object_setInstanceVariable(self, [key UTF8String], *(id**)addr); 到 ARC。当我尝试使用 Xcode 内置的 Obj
为什么 Objective-C 运行时方法 object_getInstanceVariable 和 object_setInstanceVariable 在自动引用计数下不可用,我该怎么办?当实例变
我是一名优秀的程序员,十分优秀!