038.category 分类/类别
2015-07-26 10:15
162 查看
--------------- 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;
@end
--------------- NSNumber+fk.m ---------------
#import
"NSNumber+fk.h"
@implementation
NSNumber (fk)
- (NSNumber*) add: (double)
num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] + num2)];
}
- (NSNumber*) substract: (double)
num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] - num2)];
}
- (NSNumber*) multiply: (double)
num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] * 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);
}
一、编写本节代码的具体步骤:
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.通过分类可以重写原类中的原有方法,但通常不推荐这样做。
#import
<Foundation/Foundation.h>
@interface
NSNumber (fk)
- (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
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] + num2)];
}
- (NSNumber*) substract: (double)
num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] - num2)];
}
- (NSNumber*) multiply: (double)
num2
{
return
[NSNumber
numberWithDouble:
([self
doubleValue] * 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);
}
一、编写本节代码的具体步骤:
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.通过分类可以重写原类中的原有方法,但通常不推荐这样做。
相关文章推荐
- nigos core 安装配置
- Google开源库之Volley的初步介绍
- HDU 3305 Ice-sugar Gourd
- HDU 2178 猜数字(二分)
- UVA 11090 Going in Cycle!!(Bellman-Ford判断负圈)
- Codeforces Round #313 (Div. 1) Gerald's Hexagon
- goto语句的使用案例
- Django笔记 —— 模型高级进阶
- HDU 2108 Shape of HDU(几何)
- HDU 1533.Going Home(费用流模板)
- 去掉django rest framework强制的csrf检查
- GO-读取网页内容(获取外网IP地址)
- Django user使用
- go-并发与并行
- Mongo
- google play store终于能正常使用了
- Code Forces 559 A. Gerald's Hexagon(水~)
- OC学习笔记——类别(Category)
- Django 1.8安装使用
- django 1.8 官方文档翻译: 2-6-3 提供初始数据