首页 > 代码库 > Objective-C(杂记一)
Objective-C(杂记一)
Block
1, 定义block(无参数,无返回值)
//第一种方法^{ NSLog(@"hello block!!!");};//第二种方法(void) (^firstBlock)(void);firstBlock = ^{ NSLog(@"hello block!!!");};//第三种方法,其实第二种一样,只上直接给block赋值了(void) (^firstBlock)(void) = ^{ NSLog(@"hello block!!!");};
2, 定义block(有参数,有返回值)
//第一种方法^ (double a, double b) { return a + b;};//第二种方法double (^addTwoVlaues)(double, double) = ^(double a, double b) { return a + b; };//调用blockdouble result = addTwoVlaues(5, 10);NSLog(@"result is %f", result);
3, block 可以访问外部变量
//第一种- (void) testMethod() { int value = http://www.mamicode.com/35;"value is: %i", value); } testBlock();};//output: value is 35//第二种- (void) testMethod() { int value = http://www.mamicode.com/35;"value is: %i", value); } value = http://www.mamicode.com/45; "value is: %i", value); } value = http://www.mamicode.com/45; >
4, block作为参数传递
//参数为callBackBlock- (void)methodWithCallBackBlock: (void)(^)(void) callBackBlock;//在方法内部使用参数callBackBlock- (void)methodWithCallBackBlock: (void)(^)(void) callBackBlock { callBackBlock();}
5. block typedef
typedef void( ^TypedefBlock)(void);TypedefBlock typedefBlock= ^{ NSLog(@"this is a typedef block");};
Objective-C(杂记一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。