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

闭包(block)

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

标签:

block主要解决反向传值和传值问题

1.block申明的公式       返回值类型 (^名字)(参数列表);

2.block实现的公式       名字= ^(参数列表){};

3.局部变量                  定义一个图片的名字的block

void (^imageNameBlock)(NSString *imageName);//申明

__block UIImage *image; //iamge == nil 如果想修改外部变量的值 需添加__block修饰  也就是说如果要在block内部改变外部变量的状态时,需要使用__block修饰

4.实现block

imageNameBlock = ^(NSString *imageName){//实现

        image = [UIImage imageNamed:imageName];

        self.view.backgroundColor = [UIColor colorWithPatternImage:image];

    };

5.调用block

imageNameBlock(@"photo.png");//调用

 

反向传值:

1.在需要传值的类里面写block,即声明

@property (nonatomic,copy)void (^block)(NSString *content);//block是分配在栈里面的,不需要程序员管理内存

2.需要接收值的地方实现block

 NextViewController *nextView = [[NextViewController alloc]init];

    nextView.block = ^(NSString *content){

        NSLog(@"%@",content);

        labelTextBlock(content);

    };

3.在需要传送值的地方  调用block

block(@"sfasfaklgjgjkdsjkns");

 

 

 

 

闭包(block)

标签:

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

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