gpt4 book ai didi

ios - 将 object_setInstanceVariable() 转换为 ARC?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:59 24 4
gpt4 key购买 nike

我想转换一个实例

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)

最佳答案

来源: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 兼容。

关于ios - 将 object_setInstanceVariable() 转换为 ARC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13196727/

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