![](/img/trans.png)
[英]Objective-C: Compiler error when overriding a superclass getter and trying to access 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.