首页 > 代码库 > iOS复习笔记10:使用Block
iOS复习笔记10:使用Block
功能:保存一段代码,可以在任何时间执行。
标志:^
跟函数类似:
1 可以保存一段代码
2 有返回值
3 有形参
4 调用方式
变量声明:更函数指针变量类似
返回值类型 (^变量名)(参数类型列表)
typedef:
返回值和参数一致的block可以typedef为同一种类型
权限:
block内部可以访问外面的变量;
但是,默认情况下,block内部不能修改外面的局部变量;
可以在局部变量加上__block关键字之后,这个变量就可以在block内部修改。
示例:
标志:^
跟函数类似:
1 可以保存一段代码
2 有返回值
3 有形参
4 调用方式
变量声明:更函数指针变量类似
返回值类型 (^变量名)(参数类型列表)
typedef:
返回值和参数一致的block可以typedef为同一种类型
权限:
block内部可以访问外面的变量;
但是,默认情况下,block内部不能修改外面的局部变量;
可以在局部变量加上__block关键字之后,这个变量就可以在block内部修改。
示例:
// main.m #import <Foundation/Foundation.h> typedef int (^MulBlock)(int, int)); int main() { // 定义一段block,并赋值给block变量block1 void (^block1)() = ^{//如果没有形参,可以省略参数列表 NSLog(@"this is a block"); }; // 执行block block1(); int (^addBlock)(int, int)); addBlock = ^(int a, int b){ return a + b; }; int (^subBlock)(int, int)) = ^(int a, int b){ return a - b; }; NSLog(@"%d + %d ", addBlock(2, 1), subBlock(2 - 1)); MulBlock add = ^(int a, in b){ return a + b; }; MulBlock mul = ^(int a, in b){ return a * b; }; return 0; }
iOS复习笔记10:使用Block
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。