block数据类型
功能:block用来保存一段代码也叫代码块
特点: block的标志^
block跟函数很像
可以保存代码
有返回值
有形参
如何定义block变量
int (^sumBlock)(int,int);
void (^myBlock)();
如何利用block封装代码
^(int a,int b){
return a + b;
};
^(){
NSLog(@"------");
};
^{
NSLog(@"-------");
};
block访问外面变量
block内部可以访问外部的变量
默认情况下,block内部不能修改外面的局部变量
给局部变量加上__block关键字,这个局部变量就可以在block内部修改
protocol协议
protocol基本用途
可以用来声明一大堆方法(不能声明成员变量)
只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明
只要父类遵守了某个协议,就相当于子类也遵守了
协议的定义
@protocol协议名称 <NSObject>
方法声明
@end
如何遵守协议
类遵守协议
@interface类名:父类<协议名称>
@end
以后需要遵守的原则
以后想写协议和类的时候,都写@class和@protocol
实现的时候才写 #import。。。
什么时候把协议写在里面,什么时候写在外面
当协议只用于这个类的时候写在里面
当协议用于多个类的时候,写在外面