Objective-c类可以按类别扩展 但是,通过定义相同的方法,在同一个类上使用多个类别扩展,结果未定义 - 如下所示:
@implementation someClass (category1)
- (void)foo {}
@end
@implementation someClass (category2)
- (void)foo {}
@end
在这种情况下,编译器甚至不会显示任何警告消息。在一些大型项目和不同的人员进行维护时,这种情况很难解决。
所以我的问题是:是否有任何复杂的模式或解决方案来避免这种情况?
答案 0 :(得分:2)
对于大型项目,一个好的做法是在方法名称中添加前缀,如:
- (void)nd_foo;
- (void)sp_foo;