首页 > 代码库 > IOS学习之路--BLOCK
IOS学习之路--BLOCK
/* 1.定义block变量: 返回值类型 (^block变量名) (参数类型1, 参数类型2, ....); 2.给block变量赋值 block变量名 = ^(参数类型1 参数名称1, .....) { }; *//* 1.设置动画属性 2.开始执行动画 3.动画执行完毕 block1 = ^{ 封装了动画开始执行前想做的事情 }; block2 = ^{ 封装了动画执行完毕后想做的事情 }; */#import <Foundation/Foundation.h>//typedef int MyInt;// MyBlock其实就是新的数据类型名称typedef int (^MyBlock)(int, int);/* 需要掌握: 1.定义block变量 2.给block变量赋值 3.type和block的应用 */int main(int argc, const char * argv[]){ MyBlock minus = ^(int a, int b) { return a - b; }; int d = minus(10,5);NSLog(@"d id %d", d); MyBlock sum = ^(int v1, int v2) { return v1 + v2; }; int e = sum(10, 11); NSLog(@"e is %d", e); /* int (^minusBlock) (int, int) = ^(int a, int b){ return a - b; }; minusBlock(10, 5); int (^averageBlock) (int, int) = ^(int a, int b) { return (a+ b)/2; };*/ return 0;}void test2(){ int a = 10; __block int b = 10; // block内部不能修改默认的局部变量 // 定义一个block变量 void (^block) () = ^{ //a = 11; b = 11; NSLog(@"b=%d", b); }; block(); block(); block();}void test(){ // 左边的void:block没有返回值 // 最右边的() :没有参数 // 中间的(^) block的标志,不能少 void (^myblock)() = ^{ int a = 11; int b = 11; NSLog(@"a=%d, b=%d", a, b); }; myblock(); // 定义一个block变量,变量名是sumBlock // 最左边的int:block的返回值是int类型 // 最右边的(int, int) block接受两个int类型的参数 int (^sumBlock)(int, int); sumBlock = ^(int v1, int v2){ return v1 + v2; }; int sum = sumBlock(10, 11); NSLog(@"sum=%d", sum);}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。