2012-07-30 33 views
1

我剛纔已經更新到了XCode 4.4,現在得到這個連接錯誤:_objc_copyCppObjectAtomic未定義的符號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(只讀)的std ::矢量box2DBodiesList;

這是一個iOS應用程序。

任何線索?

回答

3

當我升級到XCode 4.4時,我遇到了同樣的問題。

問題可能是該屬性聲明爲只讀,但是您可以在類實現中爲其分配值,可能是在初始化程序中。

您可以通過聲明屬性作爲讀寫你的頭文件,或讀寫重新聲明它在你的實現文件(.mm)一類類聲明中,像這樣的

@interface CLASSNAME() 
@property(readwrite) std:vector box2DBodiesList; 
@end 

丟失的功能解決了這個_objc_copyCppObjectAtomic用於複製CPP對象(用C++數據類型讀取屬性),當屬性被標記爲只讀(不需要複製)時被排除。

希望這會有所幫助!

/AndLen

+4

非常感謝!那麼你的解決方案不起作用,但指出我在正確的方向。我在屬性聲明中添加了「nonatomic」,現在我的項目編譯得很好。謝謝你! – user1563726 2012-07-31 18:00:31

+0

是的,非原子也爲我做了詭計。 – 2012-10-01 20:20:47