【移動應用開發(fā)技術】iOS多線程之NSOperation的使用_第1頁
【移動應用開發(fā)技術】iOS多線程之NSOperation的使用_第2頁
【移動應用開發(fā)技術】iOS多線程之NSOperation的使用_第3頁
全文預覽已結(jié)束

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

【移動應用開發(fā)技術】iOS多線程之NSOperation的使用

NSOperation對象的使用步驟NSOperation對象描述了一個操作任務;NSOperationQueue對象描述了一個任務隊列,相當于GCD的dispatch_queue_tNSOperation及NSOperationQueue可以任務是GCD之上的面向?qū)ο蠓庋bGCD提供了更底層的控制,NSOperationQueue在GCD之上實現(xiàn)了一些方便的功能,這些功能對于開發(fā)者而言通常是最好最安全的選擇

基本使用步驟:

1)定義操作隊列

2)定義操作

3)將操作添加到隊列提示:一旦將操作添加到隊列,操作就會立即被調(diào)度執(zhí)行任務隊列對象NSOperationQueue描述了任務隊列,使用兩種隊列:1)主隊列,其中的任務只在主線程中執(zhí)行,和GCD的主隊列一樣+

(NSOperationQueue

*)mainQueue2)自定義隊列,其中的任務會在子線程中執(zhí)行,和GCD的全局隊列一樣

使用alloc+init方式創(chuàng)建NSOperationQueue的其他方法:-

(void)cancelAllOperations

//取消所有的任務

-

(void)waitUntilAllOperationsAreFinished

//等待至所有任務結(jié)束

@property

NSInteger

maxConcurrentOperationCount

//隊列中任務的最大并發(fā)數(shù)

@property(assign)

dispatch_queue_t

underlyingQueue

//GCD的底層隊列任務對象及其子類NSOperation描述了一個任務,是一個抽象類型,應當使用其子類

NSBlockOperation和NSInvocationOperation1)NSBlockOperation使用block描述一個任務:+

(instancetype)blockOperationWithBlock:(void

(^)(void))block

還可以添加block,使其描述多個任務-

(void)addExecutionBlock:(void

(^)(void))block

2)NSInvocationOperation使用方法一個任務:-

(instancetype)initWithTarget:(id)target

selector:(SEL)sel

object:(id)arg

指定的方法可以有返回值,使用result屬性獲取@property(readonly,

retain)

id

result向任務度列中添加任務

使用任務隊列對象的addOperation方法:-

(void)addOperation:(NSOperation

*)operation

//不會阻塞當前線程的執(zhí)行

-

(void)addOperations:(NSArray<NSOperation

*>

*)ops

waitUntilFinished:(BOOL)wait

//可以阻塞當前線程還有一種直接傳遞block的添加任務方式:-

(void)addOperationWithBlock:(void

(^)(void))block總結(jié):三種添加任務的方式:

1)addOperationWithBlock:

2)添加NSBlockOperation任務

3)添加NSInvocationOperation任務異步下載圖片任務1:bo1對象,描述了一個下載任務任務2:bo2對象,將下載后的圖像對象顯示

任務1添加到自定義任務隊列中,在子線程執(zhí)行

任務2添加到主隊列中,在主線程執(zhí)行

任務的依賴通過任務的依賴可以方便地控制多個任務執(zhí)行的先后順序使用NSOperation的addDependency:方法添加依賴-

(v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論