我在一些源代码(由其他开发人员)中看到了这样的内容:
#import "SomeClass+SomeOtherClass.h"
是+
为了什么?这是什么意思?
我在一些源代码(由其他开发人员)中看到了这样的内容:
#import "SomeClass+SomeOtherClass.h"
是+
为了什么?这是什么意思?
假设您想向现有类(exp: NSString
)添加功能。您可以通过创建子类或使用类别来做到这一点。并且通常使用模式 : 来命名定义类别的文件MyClass+MyCategory.h
。
例如,我们可以reverseString
在类别NSString
中为类添加方法:
// File NSString+reversable.h
- (NSString *)reverseString;
// File NSString+reversable.m
- (NSString *)reverseString
{
// Implementation
}
查看此文档以获取有关类别的更多信息。
然后您可以在另一个类中使用该类别:
#import "NSString+reversable.h"
// ...
NSString *aString = @"Hello!";
NSString *reversedString = [aString reverseString];
标头/源文件名中的“+” -按照惯例- 用于描述Category
实现。
例子 :
假设您想向现有类(例如NSString
类)添加一些功能。( NSString+Utilities.h
)
// NSString+Utilities.h
@interface NSString (Utilities)
-(NSString *) doSthWithThisString;
@end
// NSString+Utilities.m
@implementation NSString (Utilities)
-(NSString *) doSthWithThisString
{
NSMutableString *transformedStr = [self copy];
// Do sth
return transformedStr;
}
@end
使用它 :
// in another file
#import "NSString+Utilities.h"
- (void)awakeFromNib
{
NSString* myString = @"This is a string";
// you may use our new NSString method as much as any already-existing one
NSString* newString = [myString doSthWithThisString];
}
参考 :