繁体   English   中英

iOS Xcode:在Objective-C中访问Ivar的编译器错误

[英]iOS Xcode: Compiler error accessing Ivar in Objective-C

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

我写了一个方法来抓住伊娃的东西。 它在同一个项目中的另一个单元测试中工作,但在这种情况下不起作用。

码:

-(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的行中抱怨以下错误:

"Declaration of 'Ivar' must be imported from module 'ObjectiveC.runtime' before it is required"

对此错误代码的网络搜索会出现零点击。 不知道为什么它在另一个文件中工作,两个XCUnitTest类之间的标题看起来都一样。

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

要导入objective-c运行时标头并根除此警告,请将#import <objc/runtime.h>到标头中。 做完了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM