Block
Block变量格式:
返回值类型(不可省略, 最少void,没有()) + (^变量名称) + (参数) (不可省略, 至少()).
无参数无返回值
void (^noParamBlock)() = ^(){NSLog(@"this is a noParamBlcok!");};
noParamBlock();
void (^voidParamBlock)(void)= ^(void){NSLog(@"this is a voidParamBlock!");};
voidParamBlock();
void (^blockName)();
blockName = ^{NSLog(@"this is a block!");};
blockName();
有参数无返回值
void (^hasParamBlock)(int) = ^(int param){NSLog(@"param is %d",param);};
hasParamBlock(10);
有参数有返回值
int (^hasReturnValueBlock)(int,int) = ^(int param1,int param2){ return param1 + param2;};
NSLog(@"return value %d",hasReturnValueBlock(10,10));
@property Block
typedef int (^MyBlock) (int,int);
@property (nonatomic, copy) int (^cBlock)(int num1,int num2);
@property (nonatomic, copy) MyBlock block;
xx.cBlock = ^(int num1,int num2){return num1*num2;};
xx.block = ^(int num1,int num2){return num1*num2;};
Block作为参数
- (void)funWithBlock:(NSString* (^)(int ,NSString * ))blockName1 anotherBlock:(MyBlock)blockName2{
NSLog(@"block1->%@",blockName1(4,@"str"));
NSLog(@"block2->%d",blockName2(1,5));
}
[self funWithBlock:^(int num,NSString *str){
return [NSString stringWithFormat:@"%d++%@",num,str];
} anotherBlock:block];
Block作为返回值
- (int (^)(int ,int))funBlockBack{
return ^(int num1,int num2){
return num1+num2;
};
}
NSLog(@"blockBack-> %d",[self funBlockBack](1,7));
分享到:
相关推荐
把block当成属性放在单例字典中,可以帮你跨界面,在任意一个地方都可以访问到这个block,之所以上传,是因为看到很多人还在使用代理传值,觉得费时间,这个demo简单易懂,真的好用
iOS Block 的 基本使用 演示 在Controller之间传值 和 传点击相应事件
iOS的block是学习的难点和重点,熟练使用block可以达到代码的简单高效,特别是在网络的使用过程中。Block demo是一个简单易学的,可以便于学习原理。
iOS底层原理进阶,从底层原理和本质详细解析block的使用
方法来触发按钮的动作,而改成用一个block的方式来出发动作,这样处理后,一可以降低代码的分散度,二当我再次查看按钮的触发方法实现细节时就不用点command跳到方法里,而是在按钮的初始化位置就能看到按钮的点击...
该文档简单的介绍了ios下block是的使用方法和一些小技巧
IOS block回调代码实例Demo IOS block 回调 Demo 块
iOS block使用总结 可以结合博客http://blog.csdn.net/aiyang10/article/details/49328969理解
iOS学习——block深入浅出博文中的代码 博文地址:http://blog.csdn.net/u010127917/article/details/49946527
用代码块实现两个不同视图直接的传值问题,用代码块实现起来比协议更方面。
iOS 常用block 传值
源码github.com/pro648/BasicDemos-iOS/tree/master/Block 块是一个独立的代码片段,始终存在于另一个编程结构的范围内,如在一个方法的主体。块可以捕获块外变量的值,但外部对于块内发生的事情一无所知。...
iOS Block 的使用, 包括传值, 基本用法
UIButton类在使用时需要一行行的来设置属性,代码过于冗余。每个点击事件都要创建一个方法,不利于阅读。最新代码地址:https://github.com/Maricle1/ControlsPackage.git
通过自己的了解详细解析 block 反向传值
一个block回调的例子
iphone开发中block的详解.pages
通过block传值
翻译的Pro Multithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch, and Blocks中的block章节
一直为block回调困惑,写个小demo熟悉熟悉