我有一个名为ManageAddressBook.m的文件 该文件里面有两个@implementation
第二个是什么意思?
@implementation ManageAddressBook
@end
@implementation NSString (Additions)
@end
答案 0 :(得分:8)
第一个实现只是一个新类。第二种实现基本上是现有类的扩展方法,称为Categories。有关详细信息,请参阅文章:Categories and Extensions。
如链接顶部所述:
类别允许您将方法添加到现有类 - 甚至是您没有源的类。类别是一个强大的功能,允许您在不进行子类化的情况下扩展现有类的功能。使用类别,您还可以在多个文件中分发您自己的类的实现。类扩展类似,但允许在除主类@interface块之外的位置为类声明其他必需的API。
答案 1 :(得分:5)
第二个在NSString
上实现Objective-C Category,即在NSString
上运行的方法,但NSString
类的编写者不提供。< / p>
添加类别允许您以类似于C#的扩展方法的方式扩展类的功能:对象开始响应类别中定义的消息,使您可以方便地以灵活和模块化的方式编写功能。