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];
    }
}];
}
时间: 2024-10-14 03:20:21

GDC异步获取数据例子的相关文章

Validform和aui2.0结合使用的表单自定义验证提示和列表页异步获取数据Demo

二.添加自定义验证演示       Validform验证提示大多都是在输入框或下拉框的右边或下面.感觉就是不美观,特别是表单字段少的时候,这种在相应对象旁边的提示就没必要了,      它会给人一种不友好的感觉(只是自己的感觉).所以下面写了三种添加演示,希望大家能给出建议,以免下次用起来纠结,不知道用哪种好.        表单验证插件是我们经常使用的Validform_v5.3.2_min.js.先上添加1演示的表单验证js代码,这里我设置了点击提交按钮后才验证.其他添加演示的区别不大,详

netty客户端异步获取数据

源码见,下面主要是做个重要代码记录 http://download.csdn.net/detail/json20080301/8180351 NETTY客户端获取数据采用的方式是异步获取数据,不像socket你不知道服务端何时处理请求,何时能得到响应,即使得到响应也没法自动退出程序: 必须使用以下步骤: =================step 0.当然是发起异步连接操作,等待客户端链路关闭 //发起异步连接操作 ChannelFuture f = b.connect(this.host, t

MVC—实现ajax+mvc异步获取数据

之前写过ajax和一般处理程序的结合实现前后台的数据交换的博客,如今做系统用到了MVC,同一时候也用到了异步获取数据. ajax+一般处理程序与MVC+ajax原理是一样的在"URL"中前者写的一般处理程序的名字.而后者写到Controller中须要调用的方法. Controller中的设计 using System.Collections.Generic; using System.Web.Mvc; namespace mvcAjaxByAjax.Controllers { //考试

datatables异步获取数据、简单实用

IKC项目总结 一.认证难题管理模块 1. 如何使用datatables进行获取数据内容 datatables简介:Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 分页,即时搜索和排序 几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation 各式各样的扩展: Editor, TableTools, Fi

nuxt.js中asyncData 方法能够在渲染组件之前异步获取数据

https://zh.nuxtjs.org/api/ asyncData 方法 你可能想要在服务器端获取并渲染数据.Nuxt.js添加了asyncData方法使得你能够在渲染组件之前异步获取数据. asyncData方法会在组件(限于页面组件)每次加载之前被调用.它可以在服务端或路由更新之前被调用. 原文地址:https://www.cnblogs.com/marquess/p/12628749.html

IOS异步获取数据并刷新界面dispatch_async的使用方法

在ios的开发和学习中多线程编程是必须会遇到并用到的.在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现. 同样在,在ios移动开发和Android基本是很类似的一种模型. 但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等. (虽然一般的调用sdk发起一个网络请求,系统都是会默认给你新起一个线程去处理的). 整个程序看上去基本就是在Main线程中执行. 确实也是这样的一种现象,因为我们基本都是在操作控件

使用 antd Table组件, 异步获取数据

使用React.js + Redux + antd 制作CMS 后台内容管理系统,分享一点点积累,欢迎讨论. 在this.state中初始化数据: this.state = { pageNum:1, /*翻页查询*/ pageSize:10, /*分页查询*/ activePage: 1, /*默认显示一页*/ selectedRowKeys: [], // 这里配置默认勾选列 loading: false, /*antd*/ selectedRow:[] } 在制作过程中,根据需要把antd的

JavaScript异步获取数据解析

<script type="text/javascript">    var xhr=false;    function createXhr() {    var xhobj = false;    try {        xhobj = new ActiveXObject("Msxml2.XMLHTTP"); // ie msxml3.0+    } catch (e) {        try {            xhobj = new A

关于本地$.get(url,function(data)),异步获取数据

起初 此处url为本地同目录下的html片段 $.get(url,function(data) { alert(url); $("#gallery").append(data); }); 浏览器无法获取:解决方法:在谷歌快捷方式添加--disable-web-security,并重启浏览器后正常运行