簡(jiǎn)述一下閉包的執(zhí)行過(guò)程.
? ? block他的本質(zhì)上是一個(gè)匿名的func,C語(yǔ)言闡述了只要是函數(shù),那么可以明白,一個(gè)函數(shù)名(不管是否匿名,就是block)就是一個(gè)函數(shù)指針,此函數(shù)指向了它需要去執(zhí)行的代碼段,且指針本身也是有一個(gè)在棧區(qū)的地址,假設(shè)就是0xf00001.代碼上一個(gè)block通常寫(xiě)上名稱(chēng)加上()就是去執(zhí)行了
? ? 在開(kāi)發(fā)中,要使用到block的情景通常都是這樣的,我在前一個(gè)控制器頁(yè)面需要某些數(shù)據(jù),它可能是用來(lái)動(dòng)態(tài)更改navigationItem,也可以去獲取某個(gè)模型..這些都是根據(jù)后一個(gè),或者后幾個(gè)頁(yè)面用戶的操作來(lái)得到的,此時(shí)使用block覺(jué)得無(wú)疑是最方便的(用代理和使用通知實(shí)在啰嗦),此時(shí)使用block的好處是,當(dāng)前就像執(zhí)行一個(gè)普通的函數(shù)一樣,通常包含了這個(gè)類(lèi)頭文件,只要去執(zhí)行這個(gè)block,所需要的數(shù)據(jù)就在此block的參數(shù)里面.意味著只要執(zhí)行了這段block就默認(rèn)一定會(huì)得到此參數(shù),解耦一流,且當(dāng)前頁(yè)面不用關(guān)心這段block實(shí)際的內(nèi)容和執(zhí)行過(guò)程
?在這段block真正執(zhí)行的時(shí)候,就可以根據(jù)實(shí)際的操作給回調(diào)傳不同的參數(shù)即可.
block實(shí)際上非常簡(jiǎn)單,下次把多層次回調(diào)總結(jié)下,弄上圖文