3
A
回答
4
比方说,您想添加功能到现有的类(exp:NSString
)。你可以通过创建一个子类来做到这一点,或者你可以使用一个类别。通常使用以下模式来命名文件的类别:MyClass+MyCategory.h
。
例如,我们可以将方法reverseString
在一个类别添加到类NSString
:
// File NSString+reversable.h
- (NSString *)reverseString;
// File NSString+reversable.m
- (NSString *)reverseString
{
// Implementation
}
看一看这个documentation有关类别的更多信息。
然后,可以使用该类别在另一个类中: - 按照惯例-
#import "NSString+reversable.h"
// ...
NSString *aString = @"Hello!";
NSString *reversedString = [aString reverseString];
4
的“+”,在页眉/源文件名是用于描述Category
实现。
例子:
比方说,你想添加一些功能添加到现有类(e.g.the 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];
}
参考:
相关问题
- 1. 导入.SQL包含COPY语句到PSQL
- 2. 包含我的导入的jar名称是什么?
- 3. 什么是。在Python中的导入语句是什么意思?
- 4. 为什么vBulletin .htaccess文件包含这些重复的语句?
- 5. 使用Gjs导入语句导入的内容是什么?
- 6. gproc_lib.erl文件中下列语句的含义是什么?
- 7. Java导入语句:什么是导入网络。
- 8. 导入包含文件名的文本文件
- 9. 包含语句中的斜杠是什么意思?
- 10. 如果查询语句包含'',那么正确的语法是什么?
- 11. 这是什么意思,该语句S立即包含语句U?
- 12. 语法导入包含字典的文本文件时出错
- 13. 由于包含文件导致多个“使用”语句
- 14. 在头文件名中包含句号
- 15. 导入Cython生成的.so文件时,导入错误的含义是什么?
- 16. python中是否有类语句的包含文件?
- 17. Java中冗余导入语句的影响是什么?
- 18. 导入文件全部内容的Python语法是什么?
- 19. 包含if语句的语句错误
- 20. OSGI bundle .bnd文件和冲突的导入包语句
- 21. 在select语句中包含表名
- 22. Git包文件名 - 什么是摘要?
- 23. 通过使用文件名语句导入CSV文档
- 24. 包含/导入独立的AS3文件
- 25. 这些汇编语言语句的含义是什么?
- 26. 如何导入包含SAS中重复列名的csv文件
- 27. 导入命名空间与包含PHP中的文件
- 28. 与软件包和导入语句混淆,包括默认包
- 29. python pth文件导入语句无效?
- 30. 导入语句:配置文件Python
笑,我们都使用了'NSString'扩展作为一个例子。 +1为完整的扩展声明。 – sch 2012-04-06 10:00:27
@sch哈哈哈......的确如此;这是一个非常典型的(而且很容易获得)的例子,不是吗? – 2012-04-06 10:03:34