Ios 这在Objective-C中意味着什么

Ios 这在Objective-C中意味着什么,ios,objective-c,implementation,objective-c-category,Ios,Objective C,Implementation,Objective C Category,我有一个名为ManageAddressBook.m的文件 该文件内部有两个@implementation 第二个是什么意思 @implementation ManageAddressBook @end @implementation NSString (Additions) @end 第二种方法在NSString上实现了Objective-C,即在NSString上操作的方法,但不是由NSString类的编写者提供的 通过添加类别,您可以以与C#的扩展方法类似的方式扩展类的功能:对象开始

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

第二个是什么意思

@implementation ManageAddressBook

@end

@implementation NSString (Additions)

@end

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


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

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

如链接顶部所述:

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


更有可能的是,这是一个坏设计的迹象。虽然类别是有用的,但在现有类上粘贴类别几乎不会产生代码臭味