您的位置:首页 > 其它

类目、延展、协议

2016-04-17 23:55 274 查看

1、类目Categary

1 语法

@interface class name (category name)
//属性和方法
@end


2 作用:

1.  在不知道源码的情况下给现有的类扩展新方法
2.  进行代码规划,把类的实现按功能模块分为不同的文件,看名字就知道方法的功能


2、延展Extension

@interface <class name> ()
//添加属性和方法
@end
//1.用XCODE內建添加延展:不需在原有类的.h里声明,方法在原有类的.m里实现;main需导入延展的.h文件
//2.用@interface创建延展:方法若没有在.h里声明,则需用performselector:@selector()强制调用


3、协议Protocol

基本概念

1.  所有的协议有一基协议:NSObject协议,协议中方法的关键字也会继承
2.  一个类想拥有多种不同类型的行为,可以使用协议,OC里可以签署多个协议


语法

@protocol 协议明   <父协议名>
//协议方法
//@optional修饰的方法可选实现
//@required修饰的方法必须实现
//没有关键字修饰,默认就是@required
@end


实例对象签署协议

id <协议名字> = 实例名


类签署协议

1.  一个类要签署协议,必须先导入协议的头文件
2.  在父类名字后面用'<>'括号里面写入协议名字
3.  协议可以签署多个,并且用','隔开


判断是否签署协议、实现方法

//是否签署协议
- (BOOL)conformsToProtocol:(Protocol *)aProtocol;
//是否实现方法
- (BOOL)conformsToProtocol:(Protocol *)aProtocol;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: