这在Objective-C中意味着什么

时间:2012-05-22 17:24:44

标签: ios objective-c implementation objective-c-category

我有一个名为ManageAddressBook.m的文件 该文件里面有两个@implementation

第二个是什么意思?

@implementation ManageAddressBook

@end

@implementation NSString (Additions)

@end

2 个答案:

答案 0 :(得分:8)

第一个实现只是一个新类。第二种实现基本上是现有类的扩展方法,称为Categories。有关详细信息,请参阅文章:Categories and Extensions

如链接顶部所述:

  

类别允许您将方法添加到现有类 - 甚至是您没有源的类。类别是一个强大的功能,允许您在不进行子类化的情况下扩展现有类的功能。使用类别,您还可以在多个文件中分发您自己的类的实现。类扩展类似,但允许在除主类@interface块之外的位置为类声明其他必需的API。

答案 1 :(得分:5)

第二个在NSString上实现Objective-C Category,即在NSString上运行的方法,但NSString类的编写者不提供。< / p>

添加类别允许您以类似于C#的扩展方法的方式扩展类的功能:对象开始响应类别中定义的消息,使您可以方便地以灵活和模块化的方式编写功能。