---------------
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.通过分类可以重写原类中的原有方法,但通常不推荐这样做。