NSThread 异步下载图片
在IOS中处理多线程有三个方案 , NSThread 、NSOperation 、GCD 。当然GCD应该是最方便的 ,我们一个一个学 。先理解底层的,最后再使用最方便的 。
NSThread:
优点:NSThread 比其他两个轻量级
缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销
我们先研究下用NSThread
异步加载网络图片 :
NSThread有两种创建方式 ,一种是通过实例方法。一种是通过类方法。
let thread = NSThread(target: self, selector: "doSomeThing", object: nil);
NSThread.detachNewThreadSelector("doSomeThing1", toTarget: self, withObject: nil);
通过类方法创建的自动开启,通过实例方法创建的要手动调用start()
方法去开启
let picAddress = "http://www.apple.com/euro/ios/ios8/a/generic/images/og.png"
let picAddress1 = "https://avatars2.githubusercontent.com/u/8502419?v=3&s=400"
这里我们先定义两张来自网络的图
@IBOutlet weak var activity: UIActivityIndicatorView!
&