iOS类目、延展和协议】的更多相关文章

1.类目 类目就是为已存在的类添加新的方法.但是不能添加实例变量.比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现. @interface NSMutableArray (Sort) //为NSMutableArray类添加Sort方法,Sort就是类目名,做到见名知意-(void)invert;//方法@end 实现部分 #import "NSMutableArray+Sort.h"@implementation NSMutableArray (Sort)…
类目:为已知的类增加新的方法:注意:类目里面只能写方法,不能写声明和属性,所以,类目不能作为接口来用 1.类目无法向已有类中添加实例变量.2.如果类目中的方法和已有类中的方法名称冲突时,类目中的方法优先级高,如果方法名冲突,已有类中的原始方法便无法使用.3.在使用类目的时候,最好是将自己扩展的方法和原始方法区分开来. 1.类目方法的应用: 1)对现有类进行扩展:如:可以扩展Cocoatouch框架中的类,在类目中增加的方法会被子类继承,而且在运行时跟其他的方法没有区别. 2)作为子类的替代手段:…
  NSDateFormatter 指定⽇日期格式: NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; ⽇日期转化为字符串: NSDateFormatter*formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyy…
首先我们解释一下类目是什么 iOS中类目是为给已经存在的类加入新的方法.(可是不能加入实例变量) 也就是说 我们已经有一个类了 .可是我们发现这个类眼下所提供的方法,满足不了我们的需求,我们须要新的方法.可是我们有不想或者不能动这个类的原始写法.此时类目就能够实现不用动这个类的情况下 为他加入新的方法. 比方说: 假如,我们把人看作一个类.我们对人的定义包含吃饭.睡觉.穿衣等等. 他的方法包含了 怎样吃饭,怎样穿衣,怎样睡觉等等 可是.有一天汽车出现了,我们发现我们之前对人的定义没有 开汽车这种…
类目的基本概念: 如果有封装好的一个类,随着程序功能的增加,需要在类中增加一个方法,那我们就不必在那个类中做修改或者再定义一个子类,只需要在用到那个方法时添加一个该类的类目即可. 1.在类目定义的方法中,会成为原始类的一部分,与其他方法的调用没有区别 2.通过给父类定义类目方法,其子类也会继承这些方法.如果子类添加类目方法,父类则不会拥有子类的类目方法. 类目方法的应用: 对现有类的扩展:在类目中增加的方法会被子类所继承,而且运行时跟其他的方法没有区别 作为子类的替代手段:不需要定义和使用一个子…
Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词的时候,有种感觉这是不是学习的坎?这东西难不难?能不能学会?经过本人亲自验证,这三个东西理解起来还是蛮简单的,学过C++或者Java的小伙伴对比理解还是蛮轻松的.类目(Category)就是给已有的类扩充相应的方法,扩充的方法是公有的,类目还可以起到分模块的功能,下面会详细说到. 延展(Extens…
只有继承和协议需要引IMPORT "头文件"; 必须接受marryprotocol协议, id<marryprotocol>基于类型的限定, 才能给实例变量赋值 @property (nonatomic, assign) id<marryprotocol> husband; 避免Optitonal没有实现的功能 if ([_husband respondsToSelector:@selector(driver)]) { [_husband driver]; }…
Category : 也叫分类,类目. *是 为没有源代码的类 扩充功能 *扩充的功能会成为原有类的一部分,可以通过原有类或者原有类的对象直接调用,并且可继承 *该方法只能扩充方法,不能扩充实例变量 *添加的类目是一对 .h .m 文件,文件名为 原有类名 + 分类名 Extension :延展 *为能够获得源代码的类添加私有的实例变量和方法 *注意:延展操作的类是能够获得源代码的类(具有 .m 文件的类) *通过延展定义的方法属于私有方法,外界是没有访问权限的,只能在当前类的 .m 文件中访问…
协议 协议只有方法的声明(类似于其他编程语言的接口)   协议相当于大家都所遵循的 关键字 @protocol 协议名 <所遵循的协议> 默认NSObject   @end     @protocollamcoProtocol <NSObject>@required //必须实现的方法 -(void)study; @optional //可实现可不实现的方法 -(void)work; @end   student.h文件 #import<Foundation/Foundati…
 OC04字符串博客:1.http://www.cnblogs.com/heyonggang/p/3452556.html (字符串常用方法)2.http://blog.sina.com.cn/s/blog_8345c9c90100verq.html       (字符串截取某一部分)OC05/06集合:1.(数组和数组排序):http://blog.csdn.net/daiyelang/article/details/18726947 2.(字典):http://blog.sina.com.c…