溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iOS培訓(xùn)篇——iOS中Block的使用方法

發(fā)布時(shí)間:2020-07-15 21:42:41 來源:網(wǎng)絡(luò) 閱讀:612 作者:藍(lán)鷗蔣杏飛 欄目:移動(dòng)開發(fā)

藍(lán)鷗iOS培訓(xùn)推薦:iOS開發(fā)學(xué)習(xí)中要用到很多語句,很多方式,其中block就是其中的一種,block是引進(jìn)的對(duì)C語言的一種擴(kuò)展,用來實(shí)現(xiàn)匿名函數(shù)的特性。那么下面的內(nèi)容會(huì)對(duì)你很有幫助的,一定要耐心看完哦!

block能幫助我們組織獨(dú)立的代碼段,除此之外還能提高復(fù)用性和可讀性。有很多的AppleAPI都使用了block。

那么到底block是啥樣的呢?一起來了解一下:

利用^操作符聲明一個(gè)block變量,意味著一個(gè)block的開始

iOS培訓(xùn)篇——iOS中Block的使用方法

在上面這一段程序中將block聲明為一個(gè)變量,那么就可以把它當(dāng)做一個(gè)函數(shù)來用了

iOS培訓(xùn)篇——iOS中Block的使用方法

那么從上面的情況可以看出,一般時(shí)候大家都會(huì)以內(nèi)聯(lián)方式來用block,比如在一個(gè)變量中。API不是使用block在一個(gè)對(duì)象集合上執(zhí)行某種操作,就是將這一操作作為完成后的回調(diào)

iOS培訓(xùn)篇——iOS中Block的使用方法

Block具有將臨時(shí)函數(shù)體創(chuàng)建為表達(dá)式的優(yōu)勢(shì)。Apple文檔中指出:

Block是符合如下要求的匿名內(nèi)聯(lián)的代碼集:

和函數(shù)一樣具有一個(gè)指定類型的參數(shù)列表
有一個(gè)可以推導(dǎo)或聲明的返回值類型
可以從它被定義的詞義范圍中捕捉狀態(tài)
可以在需要的時(shí)候改變?cè)~義范圍的狀態(tài)
可以和相同的詞義范圍中定義的其他的Block共享更改的可能。
可以在詞義范圍(堆棧幀)被銷毀后繼續(xù)共享和修改該詞義范圍(堆棧幀)的狀態(tài)。

Block是一個(gè)自包含的小代碼段,封裝了用于遍歷(線性遍歷)或者回調(diào),除此之外,還能夠一起執(zhí)行的任務(wù)單元。


聲明和使用Block

那么教了大家應(yīng)該怎樣將一個(gè)Block聲明為變量,并將其作為一個(gè)函數(shù)使用:

iOS培訓(xùn)篇——iOS中Block的使用方法

有想法的同學(xué)也可以傳入一個(gè)Block作為一個(gè)參數(shù),并不是利用上面的方式去聲明它們,這樣就可以在需要將block作為參數(shù)的時(shí)候以內(nèi)聯(lián)代碼的方式簡(jiǎn)單地實(shí)現(xiàn)

iOS培訓(xùn)篇——iOS中Block的使用方法

從上面這些大家能夠看出一個(gè)內(nèi)聯(lián)的block代碼段占據(jù)了最后一個(gè)參數(shù)的地方。Cocoa列出了多個(gè)block的使用方法,那么就可以傳入block作為方法的參數(shù):

iOS培訓(xùn)篇——iOS中Block的使用方法

終于這一篇寫完了,這一章節(jié)內(nèi)容有點(diǎn)多,希望大家能夠耐心的看完,會(huì)對(duì)你幫助很多的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI