IOS网络操作-使用Alamofire和ObjectMapper处理JSON转对象
Alamofire是一个使用Swift语言写的一个网络库,操作很简单,结合ObjectMapper、AlamofireObjectMapper,可以轻松的将JSON数据转换为对象类型!
Alamofire:https://github.com/Alamofire/Alamofire
[……]
Alamofire是一个使用Swift语言写的一个网络库,操作很简单,结合ObjectMapper、AlamofireObjectMapper,可以轻松的将JSON数据转换为对象类型!
Alamofire:https://github.com/Alamofire/Alamofire
[……]
参考:http://blog.csdn.net/phunxm/article/details/42685597
除了Device需要在网页上添加外,其他三个:Certificates、APPID、ProFiles,我们都可以使用Xcode帮我们自动生成。这里记录下在[……]
1. 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹
2. 删除xcworkspace文件
3. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用
4. 在工程设置中的Build P[……]
在执行pod install命令添加一个库的时候,一直停留在Analyzing dependencies,迟迟没有反应!
因为执行时会升级spec仓库,使得速度慢了不小,有时还会被Qiang,所以,使用下面命令即可忽略升级:
pod install --verbose --no-r[......]
一个标准的网络请求,包含了请求主体(NSURL、NSURLRequest)、请求操作者(NSURLConnection)、数据响应体(text、json、xml等),最后在处理返回的数据时,可能需要使用序列化将数据转换成我们需要的对象。
下面是请求一张二维码图片数据的代码:
priva[......]
多线程安全中,所谓读者写者:一个可变的对象,一个线程正对它修改,这时另个线程也过来了想修改它,同时进行吗?肯定不可以。
所以在多线程安全中,为了解决读者写者的线程安全问题,需要使用dispatch_barrier_async来保护可变对象:
var myArray :[Int][......]
为了尽可能缓解固态盘的读写操作,把最常用的浏览器缓存迁移到外置的存储中,我用的32GB SD卡。
迁移只需要两条命令:
mv ~/Library/Caches/Google/Chrome "/Volumes/OSX SD/ChromeCache" ln -s "/Volumes/OSX[......]
多线程安全中有个概念叫:临界区,意思是有一段代码,它只能被一个线程调用,这段代码就叫临界区。
在单例模式中,我们常常会判断当前类的实例是否已经存在了, 如果已存在那就返回当前的实例,如果不存在就创建一个。
传统操作下,可以使用条件语句判断,但是多线程下就不行了,为了保证当多个线程调用[……]
NSThread类,直接操作线程,适合将一个需要长时间运行的任务放到一个子线程中。
NSThread.detachNewThreadSelector("go", toTarget: self, withObject: nil) private func go(){ print[......]
NSOperation是苹果为我们封装自GCD的一个类,操作方法很简便,适合对复杂的多线程进行操作,少量的多线程使用,还是用GCD速度快。
//使用系统提供的继承于NSOperation的子类 let operation = NSBlockOperation{ //需要执行的操作,比如[......]
IOS多线程编程中,GCD是一个很方便的库,它的核心是GCD队列,所有操作都围绕着队列。
1、GCD中的三种队列
GCD中三种队列:主队列、全局队列、自定义队列。
//创建一个全局队列,队列的优先级(Priority)为Default,第二个参数暂时保留,传0即可 let[......]
闭包相比其他语法略有点生涩,其实仔细理解,会发现闭包其实就是:把嵌套函数(将一个函数作为另一个函数的参数)通过一些简洁的语法来表达。
举个例子,需要对一个数组进行排序:
var arr = ["Chris","Apple","Bady","Wifi"]
通过sorted函数可以对数组[……]
Set声明
Set是一种特殊的无序集合类型,这是一个简单的Set集合:
var setDemo:Set<String> = [“1”,”2”,”3″]
setDemo是一个Set<String>类型的集合,集合中只能出现String类型的数据,如果放入了其他类型,会引发[……]
Swift中可以使用构造语法来创建一个指定数据类型的空数组,比如:
var someInts = [Int]()
someInts是一个Int类型的空数组。
也可以在初始化时加上元素数量和默认值的定义:
var someInts = [Int](count: 3, repeatedValue:[……]
Array是一个有序列表,可以存储多个相同数据类型的值,可以出现相同的值。
这是一个Array数组:
let nameArray = [“a”,”b”,”c”]
nameArray是一个包含String类型的数组,使用for循环可以获取每个值:
for name in nameArray{
[……]