抑制警告:来自xx的类别中的元方法xx与来自另一类别的相同方法冲突

JAH*_*lia 5 iphone xcode ios

如何抑制此编译器警告: 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
Run Code Online (Sandbox Code Playgroud)

和肥皂+前缀.m:

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

 @implementation Soap (Prefix)

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

  @end
Run Code Online (Sandbox Code Playgroud)

顺便说一下,这两个文件是用SudZcWeb服务的包装器自动生成的.

ps此警告仅在XCode 4.4中发出

非常感谢你.

Mar*_*rný 51

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


Nic*_*rge 5

项目中的其他+[Soap prefix]位置正在类别中声明.尝试在项目中搜索其他声明+prefix.

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