首页 > 代码库 > 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(杂记一)