**IOS开发之关键字category(类别)详解**
2015-08-15 17:20
393 查看
一:在用C++开发的时候我们可以轻松的用继承组合为已有类添加新的方法,扩展已有的类。但是在object-c中我们给已有的类添加新的方法则更加方便,那么这是我们需要用到一个特有的属性category,但是我们再用category的时候应该有两点要注意:
1:if向已有的类添加新的方法名与已有的方法名相同,则会覆盖已有的类(相当于重写方法),这样不能够访问之前的方法;
例如我们希望希望对NSArray添加一个排序的方法,希望将如下的数组从小到达排列
NSArray *arr = [NSArrayarrayWithObjects:@"12",@"111", @"2", @"67",@"45", @"80", nil];
@interface NSArray (sortSuppot)
- (NSArray *) sortArrayByThisMod:(NSArray *)array;
@end
@implementation NSArray (sortSupport)
- (NSArray *) sortArrayByThisMod:(NSArray *)array {
//具体的实现方法
}
@end
2:只能向已有的类添加方法,不能添加属性(变量);
但是我们可以用继承给已有的类添加新的属性变量
@interface NSAddArray : NSArray {
NSobject *obj;
}
- (id)doSomething:(NSObject *)obj;
1:if向已有的类添加新的方法名与已有的方法名相同,则会覆盖已有的类(相当于重写方法),这样不能够访问之前的方法;
例如我们希望希望对NSArray添加一个排序的方法,希望将如下的数组从小到达排列
NSArray *arr = [NSArrayarrayWithObjects:@"12",@"111", @"2", @"67",@"45", @"80", nil];
@interface NSArray (sortSuppot)
- (NSArray *) sortArrayByThisMod:(NSArray *)array;
@end
@implementation NSArray (sortSupport)
- (NSArray *) sortArrayByThisMod:(NSArray *)array {
//具体的实现方法
}
@end
2:只能向已有的类添加方法,不能添加属性(变量);
但是我们可以用继承给已有的类添加新的属性变量
@interface NSAddArray : NSArray {
NSobject *obj;
}
- (id)doSomething:(NSObject *)obj;
相关文章推荐
- Android Native 绘图方法
- DOM2非标准但却支持很好的几个属性小结
- PostgreSQL教程(三):表的继承和分区表详解
- Ruby简洁学习笔记(二):类继承、属性、类变量
- Delphi控件ListView的属性及使用方法详解
- C#中struct和class的区别详解
- Lua面向对象之类和继承浅析
- 浅析Ruby中继承和消息的相关知识
- PowerShell中Get-Date对象的常用属性和方法介绍
- Windows Powershell属性:描述对象是什么
- VBS ArrayList Class vbs中的数组类
- DIV+CSS经常用到的属性、参数及说明
- CSS 关于网页图片的属性
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 设计引导--一个鸭子游戏引发的设计理念(多态,继承,抽象,接口,策略者模式)
- CSS的inherit与auto使用分析
- C++实现不能被继承的类实例分析
- C#实现ProperTyGrid自定义属性的方法
- 深入了解PHP类Class的概念
- C#属性(Attribute)用法实例解析