Swift - 使用NSURLSession同步获取数据(通过添加信号量)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | //创建NSURL对象leturl:NSURL! = NSURL(string:urlString)//创建请求对象letrequest:NSURLRequest= NSURLRequest(URL: url)        letsession = NSURLSession.sharedSession()        letsemaphore = dispatch_semaphore_create(0)        letdataTask = session.dataTaskWithRequest(request,    completionHandler: {(data, response, error) -> Voidin        iferror != nil{            print(error?.code)            print(error?.description)        }else{            letstr = NSString(data: data!, encoding: NSUTF8StringEncoding)            print(str)        }                        dispatch_semaphore_signal(semaphore)}) asNSURLSessionTask        //使用resume方法启动任务dataTask.resume()        dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER)print("数据加载完毕!")//继续执行其他代码....... | 
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_816.html
Swift - 使用NSURLSession同步获取数据(通过添加信号量)的更多相关文章
- iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件
		NSURLSession加载数据.下载.上传文件 NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的 ... 
- Swift - 使用NSURLSession加载数据、下载、上传文件
		NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithR ... 
- 设置 ajax 同步获取数据
		问题 在处理DataTable的render进行列表渲染的时候发现通过ajax发送请求,返回的值并不正确. {"data":"id","render& ... 
- Swift - 后台获取数据(Background Fetch)的实现
		前面讲了如何让程序申请后台短时运行.但这个额外延长的时间毕竟有限.所以从iOS7起又引入两种在后台运行任务的方式:后台获取和后台通知. 1,后台获取介绍 后台获取(Background Fetch)是 ... 
- tp5 使用paginate分页获取数据对象之后 如何对对象进行数据添加
		tp5 使用paginate分页获取数据对象之后 如何对对象进行数据添加 大家都知道,在使用tp5的paginate获取分页数据之后,得到的是一个数据对象,但有时会碰到要对数据对象进行二次加工的情况, ... 
- ajax异步获取数据后动态向表格中添加数据(行)
		因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ... 
- vue+elementui搭建后台管理界面(8 同步/异步获取数据渲染table)
		elementui已经封装好了 el-table 组件,只需要指定 data 数据源即可,因此通常在 vue 实例生命周期的 created 阶段,从数据库获取数据,再将返回的数据绑定到 data 如 ... 
- 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据
		这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ... 
- onLaunch与onLoad同步获取用户数据
		前言 在开发项目的时候遇到从全局获取用户信息,逻辑是从app.js中的onLauch获取,page页面的onLoad拿到数据填充到页面.遇到的问题是onLauch与onLoad是异步的,没办法从页面判 ... 
随机推荐
- C# Programming Study #1
			引用的时候需要在参数和使用的时候加上 ref 关键字 static bool addnum (ref int val) //引用 { ++val; return true; } 参数数组的概念,可以接 ... 
- qemu核心机制分析-协程coroutine
			关于协程coroutine前面的文章已经介绍过了,本文总结对qemu中coroutine机制的分析,qemu 协程coroutine基于:setcontext函数族以及函数间跳转函数siglongjm ... 
- linux下的压缩解压命令 tar 的简单描述
			命令名称:tar 命令所在路径:/bin/tar 语法:tar选项·「-zcf」·「压缩后文件名」「目录」 -c 打包 -v 显示详细信息 -f 指定文件名 -z 打包同时压缩 tar命令解压缩语法: ... 
- Python 連接 MySQL
			Python 連接 MySQL MySQL 是十分流行的開源資料庫系統,很多網站也是使用 MySQL 作為後台資料儲存,而 Python 要連接 MySQL 可以使用 MySQL 模組.MySQLdb ... 
- oracle误删的表恢复
			flashback table lip_organization to before drop; 
- mac 下搭建 Android 开发环境
			因工作需要,要在mac 下搭建 Android 开发环境.谷歌.度娘了好久,没有找个一个完整又系统的方法,很是苦恼.最终,皇天不负有心人,找到了下面这篇文档,结合亲身体验,特此记录.也为有这方面需求的 ... 
- BZOJ 1738: [Usaco2005 mar]Ombrophobic Bovines 发抖的牛( floyd + 二分答案 + 最大流 )
			一道水题WA了这么多次真是.... 统考终于完 ( 挂 ) 了...可以好好写题了... 先floyd跑出各个点的最短路 , 然后二分答案 m , 再建图. 每个 farm 拆成一个 cow 点和一个 ... 
- BZOJ 1269: [AHOI2006]文本编辑器editor( splay )
			splay..( BZOJ 1507 题目基本相同..双倍经验 ) ------------------------------------------------------------------ ... 
- Linux怎么设置PostgreSQL远程访问
			原文链接: Linux怎么设置PostgreSQL远程访问 安装PostgreSQL数据库之后,默认是只接受本地访问连接.如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置. ... 
- Python实现 zip解压缩到指定目录
			#!/bin/env python #-*- coding:utf-8 -*- import zipfile,os import platform,sys,os from zipfile import ... 
