使用具有相同方法名称的类别扩展一个类

我想扩展一个类使用类别NSArray + Populate.h

@interface NSArray (Populate) -(NSArray *) populateArray; @end 

如果有另一个类别(来自另一个模块或库),如何用具有相同名称的方法扩展NSArray?

例如,如果有一个NSArray + Fill.h

 @interface NSArray (Fill) -(NSArray *) populateArray; @end 

据我所知,运行时引擎会默默地select其中的一个版本,没有任何崩溃?

你不能检测到这种情况,你不能确定哪个实现的-populateArray优先。 有些开发人员喜欢为此类别添加前缀。

引用Objective-C编程语言文档,

类别不能可靠地覆盖在同一类的另一个类别中声明的方法。

这个问题是特别重要的,因为许多Cocoa类是使用类别实现的。 您尝试覆盖的框架定义的方法本身可能已经在类别中实现,因此没有定义哪个实现优先。