2012-07-27 54 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的情况)的错误合并导致对同一文件的引用过多(但是该文件在物理上只有一次在磁盘上)。当我删除多余的引用时,警告停止出现。

相关问题