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;
posted on 2016-04-17 23:55  Apel  阅读(124)  评论(0编辑  收藏  举报