--------------- NSNumber+fk.h ---------------
#import
<Foundation/Foundation.h>
@interface
NSNumber (fk)
- (NSNumber*) add: (double) num2;
- (NSNumber*) substract: (double) num2;
- (NSNumber*) multiply: (double) num2;
- (NSNumber*) divide: (double) num2;
- (NSNumber*) add: (double) num2;
- (NSNumber*) substract: (double) num2;
- (NSNumber*) multiply: (double) num2;
- (NSNumber*) divide: (double) num2;
@end
--------------- NSNumber+fk.m ---------------
#import
"NSNumber+fk.h"
@implementation NSNumber (fk)
- (NSNumber*) add: (double) num2
@implementation NSNumber (fk)
- (NSNumber*) add: (double) num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] + num2)];
}
- (NSNumber*) substract: (double) num2
- (NSNumber*) substract: (double) num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] - num2)];
}
- (NSNumber*) multiply: (double) num2
- (NSNumber*) multiply: (double) num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] * num2)];
}
- (NSNumber*) divide: (double) num2
- (NSNumber*) divide: (double) num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] / num2)];
}
@end
---------------
main.m
---------------
#import
<Foundation/Foundation.h>
#import "NSNumber+fk.h"
int
main()
{
NSNumber* myNum = [NSNumber numberWithInt: 3];
NSNumber* add = [myNum add:2.4];
NSLog(@"%@", add);
NSNumber* substract = [myNum substract:2.4];
NSLog(@"%@", substract);
NSNumber* multiply = [myNum multiply:2.4];
NSLog(@"%@", multiply);
NSNumber* divide = [myNum divide:2.4];
NSLog(@"%@", divide);
{
NSNumber* myNum = [NSNumber numberWithInt: 3];
NSNumber* add = [myNum add:2.4];
NSLog(@"%@", add);
NSNumber* substract = [myNum substract:2.4];
NSLog(@"%@", substract);
NSNumber* multiply = [myNum multiply:2.4];
NSLog(@"%@", multiply);
NSNumber* divide = [myNum divide:2.4];
NSLog(@"%@", divide);
}
一、编写本节代码的具体步骤:
1.打开Xcode。
2.点击Create a new Xcode project。
3.选择OS X下的Application,然后点击Command Line Tool,点next。
4.填写项目名称,机构名称和机构标志,选择Language是Objective-C,点next。
5.选择文件储存目录,不要勾选Create Git repository on My Mac,点Create。
6.右击左侧导航栏中排在首位的黄色文件夹。
7.在弹出的菜单中,选择NewFile,选择OS X,Source,Objective-C File,点next。
8.填写分类的文件名,选择类型为Category,选择类名,点next。
9.选择存储位置,点Create。
二、本节代码涉及到的知识点:
1.category分类可以为已知类增加一些新的方法,而且不需要创建子类,不需要访问/修改原有类。
2.以本节代码为例,分类在源文件名的命名是:NSNumber+fk.h 和 NSNumber+fk.m。(源文件名只是方便辨识,并无实际意义)
3.以本节代码为例,分类在源代码里的命名是:NSNumber (fk)。
4.通过分类添加新方法之后,这些新方法不仅会影响到NSNumber类,还会影响到NSNumber类的所有子类。
每一个子类都会获取这些新方法。
5.通过分类可以重写原类中的原有方法,但通常不推荐这样做。