zoukankan      html  css  js  c++  java
  • GDC异步获取数据例子

    - (void)processImageDataWithBlock:(void (^)(NSData *imageData))processImage 
    //声明函数processImageDataWithBlock 接收一个(void (^)(NSData *imageData))processImage 块参数, 该块参数接收一个NSData*参数。实质上这个块参数是异步回调函数 { NSString *url = self.imageURL; dispatch_queue_t callerQueue = dispatch_get_current_queue();//获取当前的主UI线程队列,所有对UI的操作都要针对UI线程队列进行 dispatch_queue_t downloadQueue = dispatch_queue_create("Photo Downloader", NULL);//创建一个异步线程队列 dispatch_async(downloadQueue, ^{ //异步执行下载图片任务 NSData *imageData = *insert code that fetches photo from server*; dispatch_async(callerQueue, ^{//下载数据线程返回后,通过传入的块数据更新UI processImage(imageData); }); }); dispatch_release(downloadQueue); }
    //主UI调用更新UI
    - (void)viewWillAppear:(BOOL)animated { [spinner startAnimating]; [self.photo processImageDataWithBlock:^(NSData *imageData) {//此为回调函数定义 if (self.view.window) { UIImage *image = [UIImage imageWithData:imageData]; imageView.image = image; imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height); scrollView.contentSize = image.size; [spinner stopAnimating]; } }]; }
  • 相关阅读:
    冬至——汤圆
    偷偷的高兴!
    sql 70229 考试样题(2)
    SQL Server开发人员应聘常被问的问题妙解汇总
    GOOLE Picasa Web License
    辞旧迎新!
    VC98\mfc\lib' specified in 'LIB environment variable' 系统找不到指定路径
    ASP 入门
    OpenCV类型转换
    坐标旋转变换公式的推导
  • 原文地址:https://www.cnblogs.com/stephen-init/p/4159667.html
Copyright © 2011-2022 走看看