禁止警告:xx类中的元方法xx与另一个类中的方法冲突

我怎样才能抑制这个编译器的警告: Meta method 'prefix' in category from '...soap+prefix.o' conflicts with same method from another category ? 这里是类别soap + Prefix.h:

  @interface Soap (Prefix) +(NSString*)prefix; @end 

和soap + prefix.m:

 #import "Soap.h" #import "Soap+Prefix.h" @implementation Soap (Prefix) +(NSString*)prefix { return @"EInspector"; } @end 

这两个文件顺便自动生成与SudZc包装的Web服务。

ps此警告仅在XCode 4.4中发出

非常感谢你提前。

在你的项目的其他地方, +[Soap prefix]正在一个类别中声明。 尝试在您的项目中search+prefix其他声明。

另一种可能性是,在project.pbxproj文件的大型重构或复杂合并期间,项目结束时有两个引用或同一文件的副本,并且两者都正在编译。 我已经看到它发生了,而这些警告或错误通常会发生。 尝试在Finder中search具有相同名称的其他文件,以查看是否有某个重复文件。

当我意外地导入了类别(.m)的实现文件而不是头文件(.h)时,这发生在我身上。

在我的情况下,这个问题是由于project.pbxproj(类似于Nick Forge的情况)的错误合并导致的,这导致对同一文件的引用过多(但是该文件在物理上只在磁盘上一次)。 当我删除多余的引用警告停止出现。

你应该引用一个很好的回答,他也发布了类似的东西:

有没有办法在Xcode中压制警告?

在我看来,第二(最高票)选项是最好的!