2012-07-27 56 views
4

我怎樣才能抑制這種編譯器警告同樣的方法XX衝突: Meta method 'prefix' in category from '...soap+prefix.o' conflicts with same method from another category? 這裏是皁類+ Prefix.h:禁止警告:在類別元法XX與從另一個類別

@interface Soap (Prefix) 

    +(NSString*)prefix; 

    @end 

和肥皂+ prefix.m:

#import "Soap.h" 
#import "Soap+Prefix.h" 

@implementation Soap (Prefix) 

    +(NSString*)prefix { return @"EInspector"; } 

    @end 

和這兩個文件的方式與SudZc封裝爲Web服務自動生成的。

p.s.這個警告僅僅是在XCode中4.4

發出非常感謝你提前。

回答

5

別的地方在你的項目中,+[Soap prefix]被在一個類別聲明。嘗試在您的項目中搜索+prefix的其他聲明。

另一種可能性是,在對project.pbxproj文件進行大量重構或複雜合併期間,項目最終以兩個引用或同一文件的副本結束,並且兩者都正在編譯。我已經看到它發生,而這些警告或錯誤通常會發生。嘗試在Finder中搜索具有相同名稱的其他文件,以查看是否有某個重複文件。

+0

+ [肥皂前綴]在項目中的兩個文件中聲明,儘管我已經搜索過它但找不到多個文件,今天我找到了兩個文件,非常感謝你的答案。你也可以投我的問題:) – JAHelia 2012-07-31 07:12:48

49

這發生在我意外導入類別(.m)的實現文件而不是頭文件(.h)的情況下。

+4

謝謝,這解決了我的問題! – user1181046 2012-10-18 05:19:21

+0

這也是我的情況!謝謝! – Jan 2013-10-02 17:41:10

+0

就是這樣,謝謝! – Mapedd 2013-12-20 12:05:36

2

在我的情況下,問題是由於project.pbxproj(類似於Nick Forge的情況)的錯誤合併導致對同一文件的引用過多(但是該文件在物理上只有一次在磁盤上)。當我刪除多餘的引用時,警告停止出現。

相關問題