您的位置:首页 > 移动开发 > IOS开发

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块可以看作是内联函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: