【发布时间】:2015-04-30 17:39:06
【问题描述】:
我正在一个现有的大型 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 开头的行抱怨以下错误:
"Declaration of 'Ivar' must be imported from module 'ObjectiveC.runtime' before it is required"
对此错误代码的网络搜索结果为零。不知道为什么它在另一个文件中起作用,两个 XCUnitTest 类之间的标题看起来都一样。
【问题讨论】:
标签: ios objective-c c xcode clang