//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
时间: 2024-10-26 23:39:56