2

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

第二个是什么意思?

@implementation ManageAddressBook

@end

@implementation NSString (Additions)

@end
4

2 回答 2

8

第一个实现只是一个新类。第二种实现基本上是现有类的扩展方法,称为类别。有关更多信息,请参阅文章:类别和扩展

正如链接顶部的总结:

类别允许您将方法添加到现有类——甚至是您没有源代码的类。类别是一个强大的功能,它允许您扩展现有类的功能而无需子类化。使用类别,您还可以在多个文件中分发您自己的类的实现。类扩展类似,但允许在主类@interface 块内以外的位置为类声明额外的必需 API。

于 2012-05-22T17:27:09.370 回答
5

第二个在 上实现了一个 Objective-C类别NSString,即在 上操作但NSString不是由NSString类的编写者提供的方法。

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

于 2012-05-22T17:26:58.510 回答