草庐IT

iOS Xcode : Compiler error accessing Ivar in Objective-C

coder 2023-09-26 原文

我正在一个大型现有的 Objective-C 代码库中工作,目前正在编写单元测试。该项目广泛使用实例变量。

我写了一个小方法来获取 ivar。它在同一个项目的另一个单元测试中工作,但在这种情况下不工作。

代码:

-(id)getObjectForIvarNamed:(NSString *)ivarNameString
 {
    const char *ivarName = [ivarNameString UTF8String];

    Ivar ivarValue = class_getInstanceVariable([textFieldOverlay class], ivarName);
    id objectAtIvar = object_getIvar(textFieldOverlay, ivarValue);

    return objectAtIvar;
}

编译器在 Ivar ivarValue 开头的行报错并出现以下错误:

“'Ivar' 的声明必须在需要之前从模块'ObjectiveC.runtime' 导入”

网络搜索此错误代码的结果为零。不确定为什么它在另一个文件中工作,标题在两个 XCUnitTest 类之间看起来都一样。

最佳答案

永不失败,输入问题后立即找到答案。 但是,我还没有发布。因为这个错误在网络搜索中是不可能找到的,所以我想我应该把它贴出来,所以那里有一个实例。我在工作测试类中测试的项目类导入了 objective-c 运行时 header ,我想在输入问题后检查被测试的类。我认为这是一个标题问题,但在导入的类中没有看到它。学习时刻。

要导入 objective-c 运行时 header 并消除此警告,请添加 #import <objc/runtime.h>到标题。完成,完成。

关于iOS Xcode : Compiler error accessing Ivar in Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28774733/

有关iOS Xcode : Compiler error accessing Ivar in Objective-C的更多相关文章

随机推荐