@property (nonatomic, assign) void(^edit)(id);
cells.edit=^(tableviewCell * cell){
};
//block 做参数
typedef NSString*(^myblock)(void);
-(void)DwonLoad:(myblock)block;
+(id)getAPIDataresult:(void (^)(id resut))objct;
//声明一个block
//block 名字
void (^block)(void);
//block 指向函数
block =^{
//代码块
NSLog(@"Hello World");
};
block(); //调用block
void(^block1)(int);//声明变量名可以不用
block1=^(int a){ //实现中变量名不可缺少
NSLog(@"%d",a);
};
block1(3);
int (^block2)(int a);
block2=^(int a){
return a+9;
};
NSLog(@"%d",block2(1));
//声明与实现一起写
int(^block3)(int,int)=^(int a,int b){
returna+b;
};
NSLog(@"%d",block3(2,8));
//被__block 修饰的变量才能在 block内部被修改
__block int numA=10;
int numB=20;
//Block可以直接访问到所在函数的内部变量
int(^block4)(void)=^{
numA=30; //修改外部函数,外部函数在声明时需要__block修饰
return numA+numB;
};
NSLog(@"%d",block4());
NSString *strs=@"asdfg点点滴滴";
NSString * (^str)(void)=^{
NSMutableString*tempStr=[[NSMutableString alloc]initWithCapacity:strs.length];
for(NSIntegeri=strs.length-1;i>=0;i--)
{
unicharch=[strs characterAtIndex:i];
[tempStr appendFormat:@"%C",ch];
}
return tempStr;
};
NSLog(@"%@",str());
//block作为参数
- (void)backBlock(void (^)())block;
//block函数
@property (nonatomic,strong) void (^loadStatus)(loadStatus connection, float loadsStatus,NSError *error);