ios开发多线程篇--异步加载网络图片GCD
一.異步加載網(wǎng)絡(luò)圖片
1、ATS
(1)簡(jiǎn)介
?
從iOS9.0開(kāi)始,如果按照以前的方式寫(xiě)代碼,在訪問(wèn)網(wǎng)絡(luò)的時(shí)候 ,會(huì)報(bào)以下警告信息:
?
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.
Temporary exceptions can be configured via your app's Info.plist file.
?
原因:iOS9.0引入了新特性(App Transport Security),簡(jiǎn)稱(chēng)ATS,應(yīng)用傳輸安全。
?
新特性要求App內(nèi)訪問(wèn)的網(wǎng)絡(luò)必須使用 https 協(xié)議。
?
?
(2)解決方案
方法一:
1>? 在Info.plist中添加 NSAppTransportSecurity 類(lèi)型 Dictionary
?
2>? 在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 類(lèi)型 Boolean,設(shè)置為 YES
?
方法二:
?
在 info.plist 中 添加
?
?????? ?<key>NSAppTransportSecurity</key>
?
??? ??? ?<dict>
?
??????? ?<key>NSAllowsArbitraryLoads</key>
?
??????? ?<true/>
?
</dict>
?
?
方法三:
代碼塊
?
2.寫(xiě)代碼
?
(1)第一步:定義屬性
(2)第二步:初始化控件
?
(3)第三步:下載圖片(異步下載圖片)
?
3、線程間通信
(1)什么叫做線程間通訊?
??? 在一個(gè)進(jìn)程中,線程往往不是孤立存在的,多個(gè)線程之間需要經(jīng)常進(jìn)行通信。
小秘買(mǎi)完煙,必須得回來(lái)給班長(zhǎng)匯報(bào)一下。
(2)線程間通信的體現(xiàn)
1個(gè)線程傳遞數(shù)據(jù)給另一個(gè)線程
?在一個(gè)線程中執(zhí)行完特定任務(wù)后,轉(zhuǎn)到另一個(gè)線程繼續(xù)執(zhí)行任務(wù)
(3) 線程間通信常用方法
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(nullable id)arg waitUntilDone:(BOOL)wait;
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(nullable id)arg waitUntilDone:(BOOL)wait;
?
?
?
?
?
GCD方法演示 ? 記得還要在plist文件的源文件中加上那上句話(上面內(nèi)容有)
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/huangfang1314/p/5582494.html
總結(jié)
以上是生活随笔為你收集整理的ios开发多线程篇--异步加载网络图片GCD的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CSS:给 input 中 type=t
- 下一篇: Oracle dump 分析second