2012-03-13 80 views
0

我的項目有一個名爲「Reachability.h」文件(這是非常受歡迎的,很多人用它)的xcode生成錯誤:重複的符號,當我的項目有兩個文件具有相同的名稱

今天我加了一個框架其他人進入我的項目。 我認爲frameword具有相同的文件「Reachability.h」。

因此存在衝突。

是不是因爲在C中沒有命名空間? 如何避免此問題?

而且這裏是日誌:

ld: duplicate symbol _OBJC_IVAR_$_Reachability.reachabilityRef in /Volumes/Data/Project/ios/FreeMaster/FreeMaster/src/ThirdParty/Lmmob/LmmobAdWallSDK.framework/LmmobAdWallSDK(Reachability.o) and /Users/lxp/Library/Developer/Xcode/DerivedData/FreeMaster-hdzirfpzangiuqaavvqkrzlccrku/Build/Intermediates/FreeMaster.build/Debug-iphonesimulator/FreeMaster.build/Objects-normal/i386/Reachability.o for architecture i386 

非常感謝

回答

2

正確,there's在Objective-C沒有命名空間,這個問題經常被使用前綴的類規避。當您因爲使用您沒有使用的私人API而被蘋果「拒絕」拒絕時,這通常也是個問題。一個名爲BaseResponse的類給我們帶來了麻煩。

蘋果保留有前綴課程的權利,但在這種情況下,你要麼必須前綴或您的類重命名爲別的東西。

+0

我明白了。謝謝:) – 2012-03-13 08:35:50

1

保持在項目的可達性文件(.H,.M)單拷貝&刪除多餘的文件。這將解決問題。

如果你想保持一個額外的副本,你可以創建一個新聞組和移動可達文件到該文件夾​​,如下面的截圖:

enter image description here

在我的取景器我的文件都放在這樣的:

enter image description here

+0

它可以工作嗎?這兩個文件不在Finder中的同一組和相同的文件夾中。實際上,一個在我的項目中,另一個在框架中。 – 2012-03-13 08:33:06

+0

它爲我工作。 – Dee 2012-03-13 08:37:06

+0

我不這麼認爲。您是否可以將Reachability.m轉移到組「New Group」並重新構建? – 2012-03-13 08:44:51

1

有在Objective-C沒有namesapce或包裝類的東西。

一般來說,如果你是同一個班在庫中,你可以刪除你的類。導入<yourFramework/Reachability.h>您可以在代碼中使用可達性。

+0

是的,沒錯。但我認爲框架應該使用類前綴來避免這個問題。所以我發送電子郵件給框架的維護者,他們今天將解決這個問題。謝謝:) – 2012-03-13 08:35:31

+0

歡迎。很高興有一些幫助:) – Vignesh 2012-03-13 08:38:21

相關問題