我有一个名为 ManageAddressBook.m 的文件,该文件里面有两个 @implementation
第二个是什么意思?
@implementation ManageAddressBook
@end
@implementation NSString (Additions)
@end
我有一个名为 ManageAddressBook.m 的文件,该文件里面有两个 @implementation
第二个是什么意思?
@implementation ManageAddressBook
@end
@implementation NSString (Additions)
@end
第一个实现只是一个新类。第二种实现基本上是现有类的扩展方法,称为类别。有关更多信息,请参阅文章:类别和扩展。
正如链接顶部的总结:
类别允许您将方法添加到现有类——甚至是您没有源代码的类。类别是一个强大的功能,它允许您扩展现有类的功能而无需子类化。使用类别,您还可以在多个文件中分发您自己的类的实现。类扩展类似,但允许在主类@interface 块内以外的位置为类声明额外的必需 API。
第二个在 上实现了一个 Objective-C类别NSString
,即在 上操作但NSString
不是由NSString
类的编写者提供的方法。
添加类别可以让您以某种类似于 C# 的扩展方法的方式扩展类的功能:对象开始响应类别中定义的消息,从而方便您以灵活和模块化的方式编写功能。