iOS中类别名称的意义

Gok*_*kul 5 objective-c ios

在创建类别时,有人可以告诉我类别名称的重要性吗?

我知道编译器使用它来识别和匹配带有接口的实现.它还有其他用途吗?

如果我们以2种不同的方式创建两个具有不同名称的类别来实现相同的方法,例:

@interface NSString(Good)
- (BOOL)isGood;
@end
@implementation NSString(Good)
- (BOOL)isGood
{
return TRUE;
}
@end


@interface NSString(Bad)
- (BOOL)isGood;
@end
@implementation NSString(Bad)
- (BOOL)isGood
{
return FALSE;
}
@end
Run Code Online (Sandbox Code Playgroud)

现在在程序中我创建了一个字符串

NSString *goodString = @"GOOD";
Run Code Online (Sandbox Code Playgroud)

我的输出[goodString isGood]为false.

我想知道为什么以及如何参与这个类别的名称?

Dro*_*ppy 4

对于类别名称,根据本文,唯一的限制是它们不能与同一类中的其他类别名称冲突。

对于使用相同方法名称的类别,根据Apple文档,未定义在运行时调用哪个方法。