类的扩展 一 类目 (类目也称为分类,为没有源码的类添加方法。) 1.作用 1)可以扩展别人的类,可以作为子类的替代方法。 2)把同一类的代码放到多个文件中。 2.形式 1)文件名:目标类+类目名.h 目标类+类目名.m 2).h文件中
@interface 需要扩展的类的类名(分类名) -( )method; @end
3.注意 1)可以为同一个类添加多个类目,但类目名和方法不能重复。 2)不可以随意重写类中的方法。 3)所添加类与原类中方法同级,而且会被子类继承。
二 延展 (延展是特殊形式的类目) 1.作用 为自己的类添加私有方法 2.形式 @interface 类名 -( )method; @end
@implementation 类名 …… @end
3.注意 1)不需要创建新文件,直接在原类的.m文件中声明和实现。 2)所谓私有时候仅.m通过[self method]访问,不能在外部通过[对象 method]访问。
三 协议 (协议是由@protocol 声明的一组方法列表,只声明方法,不具体实现) 1.作用 将方法定义剥离出来,形成一个单独的文件。 2.形式 @protocol 协议名<其他协议> -()method; @end 注:方法默认是@required 必须实现,如果可以不实现用@optional。
3.代理模式 (由别人帮自己实现某个功能的模式称为代理模式) 1)接受代理 @ interface 类名:父类名 <协议名>(多个协议之间用逗号隔开) …. @end 2)确认协议 @implementation 类名 协议方法 { } @end (代理是谁,谁接受并确认协议)
4.注意 1)协议声明了可以被任何类实现的方法。 2)协议定义了一个其他对象可以实现的接口。
|