iOS BLOCK回调:(妖妖随笔)
2015-09-16 13:51
302 查看
typedef void(^myBlockTest)(int);//声明一个block块
-(void)testBlock:(NSString *)str andBlock:(myBlockTest)block
{
3. NSLog(@"str===%@",str);
4. //block(100); //将100传给参数intParameter,回调block的实现函数
//block块的回调,当这行代码不注释时,
控制台输出:
NonAtomicTest[2841:113472] str===我是字符窜
NonAtomicTest[2841:113472] 实现block
NonAtomicTest[2898:116086] 大于10
//当这行代码注释时
控制台输出:NonAtomicTest[2841:113472] str===我是字符窜
}
-(void)test1
{
1. NSString *str = @"我是字符窜";
2. [self testBlock:str andBlock:^(int intParameter) {
// str = @"1111”;
//这行代码是错误的,因为这个大括号里面是block块的实现,它只可以访问block块的参数intParameter,不可以访问testBlock:andBlock:这个函数的参数str。要想访问str,只可以在testBlock:andBlock:这个函数的实现函数里面才可以访问。
5. NSLog(@"实现block");
6. if (intParameter>10) {
NSLog(@"大于10");
}
else
{
NSLog(@"不大于10");
}
}];
}
这个例子已经标出调用顺序,这里将block块可以看作是内联函数
-(void)testBlock:(NSString *)str andBlock:(myBlockTest)block
{
3. NSLog(@"str===%@",str);
4. //block(100); //将100传给参数intParameter,回调block的实现函数
//block块的回调,当这行代码不注释时,
控制台输出:
NonAtomicTest[2841:113472] str===我是字符窜
NonAtomicTest[2841:113472] 实现block
NonAtomicTest[2898:116086] 大于10
//当这行代码注释时
控制台输出:NonAtomicTest[2841:113472] str===我是字符窜
}
-(void)test1
{
1. NSString *str = @"我是字符窜";
2. [self testBlock:str andBlock:^(int intParameter) {
// str = @"1111”;
//这行代码是错误的,因为这个大括号里面是block块的实现,它只可以访问block块的参数intParameter,不可以访问testBlock:andBlock:这个函数的参数str。要想访问str,只可以在testBlock:andBlock:这个函数的实现函数里面才可以访问。
5. NSLog(@"实现block");
6. if (intParameter>10) {
NSLog(@"大于10");
}
else
{
NSLog(@"不大于10");
}
}];
}
这个例子已经标出调用顺序,这里将block块可以看作是内联函数
相关文章推荐
- iOS开发 创建自己的UserAgent
- Github上600多个iOS开源项目
- iOS线程休眠及取消
- IOS学的容易--XML的SAX解析
- iOS中AOP与Method Swizzling 项目中的应用
- IOS多线程之GCD
- iOS NSTimeZone
- 苹果开发 笔记(74)GDataXML 解析 xml
- iOS-细节小结
- 进程&线程-ios
- block的实质
- iOS 警告收录及科学快速的消除方法
- IOS 开发文件操作——NSFileManager
- 自学 iOS 开发的一些经验
- iOS开发-NSLog不打印设置 Prefix
- 自学 iOS 开发的一些经验
- iOS--基础知识--AutoLayout 与 scrollView
- iOS用同一个工程创建两个不同版本的应用
- iOS 开发常用的第三方库
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控