我刚刚更新到XCode 4.4,现在得到这个链接器错误:
Undefined symbols for architecture armv7:
"_objc_copyCppObjectAtomic", referenced from:
-[CLASSNAME box2DBodiesList] in CLASSFILENAME.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
鉴于: @property(readonly)std :: vector box2DBodiesList;
这是一款iOS应用。
有任何线索吗?
答案 0 :(得分:3)
当我升级到XCode 4.4时,我遇到了同样的问题。
问题可能是该属性被声明为readonly,但您在类实现中为它分配了一个值,可能是在初始化器中。
您可以通过在头文件中将属性声明为readwrite,或者在实现文件(.mm)中的类类别声明中将其重新声明为readwrite来解决此问题,就像这样
@interface CLASSNAME()
@property(readwrite) std:vector box2DBodiesList;
@end
缺少函数_objc_copyCppObjectAtomic用于复制CPP对象(用C ++数据类型读写属性),并在属性标记为只读时排除(不需要复制)。
希望这有帮助!
/ AndLen