2012年03月2日

升级xcode 4.3以后Category私有方法报警告的问题解决方案

作者 非鱼

在iPhone项目里使用了几个UIImage的Category代码,为UIImage类直接增加了Alpha,Resize,RoundCorner的功能,升级了xcode 4.3正式版以后,再编译的时候这个代码会提示Category is implementing a method which will also be implemented by its primary class,网上查了一下,找到了一个不是很靠谱的答案,但是却可以解决问题。

在这几个类的.m文件里,顶上都有一个Interface UIImage(),里面定义了一个或几个私有方法的定义,然后在下面的Interface UIImage(Resize)里对这个私有方法做了实现,报警告的就是这个私有方法。

解决方案非常奇特,随便新建一个.h头文件,把Interface UIImage()和它里面的私有方法都移到这个头文件里就好了,把这几个类里面的相关的几个私有方法都合并进去,而且,你甚至不需要在其它文件里对这个头文件做引用,再编译的时候就不会报警告了,而且,原有的方法完全不受影响,在实现和使用这几个私有方法的地方也不会报找不到定义的错误。不知道xcode是如何使用这个没有被任何地方引用的.h文件的。