如何避免不同类别扩展定义相同的方法

时间:2012-11-21 07:56:15

标签: objective-c cocoa polymorphism categories

Objective-c类可以按类别扩展 但是,通过定义相同的方法,在同一个类上使用多个类别扩展,结果未定义 - 如下所示:

@implementation someClass (category1)

- (void)foo {}

@end

@implementation someClass (category2)

- (void)foo {}

@end

在这种情况下,编译器甚至不会显示任何警告消息。在一些大型项目和不同的人员进行维护时,这种情况很难解决。

所以我的问题是:是否有任何复杂的模式或解决方案来避免这种情况?

1 个答案:

答案 0 :(得分:2)

对于大型项目,一个好的做法是在方法名称中添加前缀,如:

- (void)nd_foo;
- (void)sp_foo;