所謂不破不立,不做些改進(jìn),過了一年,兩年,任然恍如隔天,在此啟發(fā)下,還是學(xué)習(xí)一些新知識,改進(jìn)一下項(xiàng)目里的歷史
bug
吧
其實(shí),適量的回調(diào)是可以優(yōu)化代碼的,想想初始寫項(xiàng)目的時(shí)候,更加喜歡用代碼delegate
的模式,幾乎不用考慮什么循環(huán)應(yīng)用,但是代碼確實(shí)很多。用block代碼簡潔了不少巡揍,基本上block是一種趨勢吧痛阻,作為碼農(nóng),順應(yīng)時(shí)代潮流腮敌,也是一種學(xué)習(xí)方法吧阱当。
關(guān)于block俏扩、代理,kvo三種方式的優(yōu)缺點(diǎn)總是在面試中會(huì)有提問弊添,在這里就不贅訴了录淡,大部分情況下是可以通用的,沒必要真過多追究
什么是block
用block可以很大程度上的使代碼更加聚集在一起油坝,功能都在一起嫉戚,所以不需要因?yàn)椴檎夷硞€(gè)方法在那里而進(jìn)入方法里面進(jìn)行查看,是一種簡化代碼的方式.(大部分情況下是這樣的)
- 首先block的定義很簡單
typedef <#returnType#①>(^<#name#>②)(<#arguments#>③)
,其中①是block
的返回值類型,②是block
的名字,三是block
的回調(diào)參數(shù),一開始可能會(huì)不理解返回值和回調(diào)參數(shù),會(huì)混淆,筆者也是當(dāng)初混淆了,但是還是比較好理解的.一個(gè)最好的理解就是block
的回調(diào)參數(shù)就是給調(diào)用者用;返回值是給被調(diào)用者用的,即創(chuàng)建這個(gè)block
的類用的.其實(shí)在一些類型中使用回調(diào)參數(shù)可以替換基本方法的返回值,也是需要考慮的,這也是設(shè)計(jì)一些工具類的方法之一
提出業(yè)務(wù)需求
設(shè)想一個(gè)基本的業(yè)務(wù)需求,一個(gè)認(rèn)證模塊,認(rèn)證的模式是調(diào)用一個(gè)網(wǎng)絡(luò)接口就可上網(wǎng)了,通過有一系列的操作,如上線第三方聊天,刷新主頁面,一個(gè)彈窗,等等,有些更者是要通過上一個(gè)網(wǎng)絡(luò)接口的值后再進(jìn)行一個(gè)網(wǎng)絡(luò)請求,同時(shí)還要判斷某個(gè)狀態(tài)進(jìn)行其他的操作.一開始覺得很簡單,不就是一個(gè)再每個(gè)回調(diào)上進(jìn)行下一個(gè)業(yè)務(wù)需求么.prosmise kit