返回类型 (^Block 的名字) (参数类型)
int (^myBlock) (int ,int,) = ^(int a,int b){
return a+b;
};
Block 方法体里面 可以访问 局部变量 和全局变量 不能 修改 需要修改 在变量前面 加 __block 就可以修改变量的值了
int num = 0;
//使用block
int (^myBlock) (int a,int b) = ^(int a,int b){
num = a+b;
return num;
};
如果要修改就要加关键字:__block (注意,是两个下划线"_")
__block int num = 0;
//使用block
int (^myBlock) (int a,int b) = ^(int a,int b){
num = a+b;
return num;
};
声明一个 Block 类型
typedef 返回类型 (^Block 的名字) (参数类型) 类型名字
定义一个指针 Block 类型
typedef 返回类型 (*Block 的名字) (参数类型) 类型名字
变量的访问权限
@protected
该类和所有的子类中的方法可以直接访问这样的变量,这是默认的。
@private
该类中的方法可以访问这样的变量,子类不可以。
@public
除了自己和子类中的方法外,也可以被其他类或者其他模块中的方法所访问
@package
对于64位图像,这样的成员变量可以在实现这个类的图像中随意访问
protocol 定义
@protocol 名字 <NSObject>
定义方法
@end
if(self conformsToProtocol:@protocol(<protocol-name>) 判断 是否实现这个协议
respondsToSelector 判断 是否实现这个方法