码迷,mamicode.com
首页 > 移动开发 > 详细

IOS 练习 BLOCK 调用

时间:2015-06-02 23:33:11      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:

//FIRST
typedef void(^TellPicBlock)(NSString *albumPic) ;//typedef定义BLOCK

@interface PersonProfileViewController : UITableViewController 

@property (nonatomic,copy) TellPicBlock TBlock;//声明一个BLOCK名字为TBLOCK

在合适的时候调用block,例如这里是在播放音乐时,从数据模型中取出存好的ALBUMPIC的地址后,变通知PlayingVC类这个图片的地址信息

 if (_TBlock)
    {
        self.TBlock(pMusuic.albumPic);
        //或者_TBLOCK(pMusuic.albumPic);
    }

下面就是在PlayingVC中实现这个block的具体方法,(NSString *albumPic)就是从PPVC类中传递过来的图片信息

///无返回值的block调用实现,接收专辑图片
    ///无返回值的block调用实现,接收专辑图片
    __weak PlayingVC *pvc = self;//为了避免循环引用需要制定弱指针
    self.ppvc.TBlock =   ^(NSString *albumPic){
        
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            NSLog(@"接收到专辑图片%@",albumPic);
            NSURL *urlalbum = [NSURL URLWithString:albumPic];
            NSData *imgdata = [NSData dataWithContentsOfURL:urlalbum];
            
            dispatch_async(dispatch_get_main_queue(), ^{
                
                [pvc.imgv setImage:[UIImage imageWithData:imgdata]];
                pvc.imgv.contentMode = UIViewContentModeScaleAspectFit;
                
            });
            
        }) ;
        
    };


打印结果为:
2015-06-02 22:21:55.793 MyFm[10974:105677] 接收到专辑图片http://image.kaolafm.net/mz/images/201403/addd221d-7952-46c5-bc52-3f1d5da8a2b0/default.jpg
2015-06-02 22:21:55.794 MyFm[10974:102918] 专辑图片为http://image.kaolafm.net/mz/images/201403/addd221d-7952-46c5-bc52-3f1d5da8a2b0/default.jpg



IOS 练习 BLOCK 调用

标签:

原文地址:http://my.oschina.net/wupengnash/blog/424048

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