码迷,mamicode.com
首页 > 其他好文 > 详细

block

时间:2015-09-11 19:19:22      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

- (void)viewDidLoad {

    [super viewDidLoad];

    [self wucan];

    [self youcan];

    [self san];

    [self si];

    [self five];

    [self six];

}

 

#pragma mark -无参无返回值

-(void)wucan

{

    //不带参的block

    void(^nslBolck)()=^{

        NSLog(@"我不是带参的block");

    };

    nslBolck();

    //输出我不是带参的block

 

}

#pragma mark -有参无返回值

-(void)youcan

{

    void(^canshu)(NSString *)=^(NSString *str)

    {

        NSLog(@"我的参数在哪里:%@",str);

    };

    canshu(@"参数在这里");

    // 输出我的参数在哪里:参数在这里

 

    NSString *string=@"参数在这里";

    canshu(string);

    // 输出我的参数在哪里:参数在这里

 

    

}

#pragma mark -有参有返回值

-(void)san

{

    NSString *(^block1)(NSString *)=^(NSString *str){

        return [str stringByAppendingString:@"抓老鼠"];

    };

    NSLog(@"%@",block1(@"猫"));

    

    //输出猫抓老鼠

 

    

    NSString *str=@"猫猫";

    NSString*(^block2)(NSInteger)=^(NSInteger interger){

        NSString *mao=[NSString stringWithFormat:@"%@抓老鼠,抓了%li只",str,interger];

        return mao;

    };

    NSLog(@"%@",block2(2));

    //输出猫猫抓老鼠,抓了2只

 

}

#pragma mark -block做参数

 

-(void)si{

    [self block3:^{

        NSLog(@"这是返回的block");

            //后输出这是返回的block

    }];

}

-(void)block3:(void(^)(void))block{

    NSLog(@"本身要输出的");

    return block();

    // 先输出本身要输出的

 

 

}

-(void)five

{

   int result=[self myFunction:^int(int num1, int num2) {

       return num1+num2;

   } withNumber:5];

    NSLog(@"%d",result);

    //输出10

}

#pragma mark -block复制变量(block内不能改变变量的值)

-(void)block4

{

    int number=10;

    int(^myptr)(int)=^(int a)

    {

        return number+a;

    };

    number=5;

    int result=myptr(20);

    NSLog(@"result %d",result);

   // 输出30

    //如能改变 需定义 static 或_block

}

-(void)six

{

    NSMutableArray *mutableArray=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];

    void(^removeObject)(void)=^(void)

    {

        [mutableArray removeLastObject];

        

    };

    removeObject();

    NSLog(@"mutableArray: %@",mutableArray);

//输出

//mutableArray: (

//               1,

//               2,

//               3

//               )

 

}

 

block

标签:

原文地址:http://www.cnblogs.com/twhbk/p/block.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!