Blcok代码总结
2016-07-02 本文已影响0人
技术攻坚队
1.声明一个Block 并调用
// 声明一个Block的变量
// | | |
// ⋁ ⋁ ⋁
// 返回值 block名称 block参数
NSString *(^blockAddtime)(NSString *addtime);
//block的具体实现
blockAddtime = ^NSString * (NSString *addtime){
return [NSString stringWithFormat:@"2016-%@",addtime];
};
//定义一个新对象调用Block
NSString *newtime = blockAddtime(@"06-30");
//输出
NSLog(@"%@",newtime);
2.在函数中把Block作为参数传递或进行回调
//block 有参数无返回值 此种适用于传递对象或数据
-(void)getName:(NSString *)name WithBlock:(void(^)(NSString *newname))block{
// 对传入的name进行处理
NSString *newName = [NSString stringWithFormat:@"Bruce%@",name];
//传递参数
block(newName);
}
//调用
[self getName:@"didi" WithBlock:^(NSString *newname) {
self.title = newname;
}];
//block 有参数有返回值 或 无参数有返回值
//此种适用于回调 在调用带block的函数时输入参数对函数进行控制
-(void)getName:(NSString *)name WithBlock:(NSString *(^)(NSString *newname))block{
// 对传入的name进行处理
NSString *fatherName = [NSString stringWithFormat:@"MIKE%@",name];
//传递参数
NSString *MIKEName = block(fatherName);
NSLog(@"%@",MIKEName);
}
//调用
[self getName:@"li" WithBlock:^NSString *(NSString *newname) {
NSString *setMikeName = [NSString stringWithFormat:@"%@",newname];
return setMikeName;
}];