iOS block的使用
前言:
block是iOS开发中时间及参数传递的一种方法,和代理模式(delegate)相比,block是简单易用的轻量级事件传递方法。
初始化:
手打如下代码,或者从代码块把代码拖拽出来。
typedef void(^upLoadImage)(NSString *str);//传参类型及形参
@property(nonatomic, strong) upLoadImage block;
方法的实现
if (self.block) {//先判断
self.block(file);
}
使用方法前要先判断方法是否实现,若方法没有实现直接使用的话,会崩溃。
方法的使用
GXuploadImage *load = [[GXuploadImage alloc] init];
__weak __typeof(self) weakSelf = self;
load.block = ^(NSString *str) {
};
在block方法里面若使用self的方法和变量的时候,要使用weakSelf,否则会导致循环引用。