先寫幾句廢話。做iOS也已經兩年有余。之前也想著開個博客,記錄下開發的點點滴滴。但自我感覺總結能力不太好,再一個想要總結的東西網上基本也能查的到,也就擱置下來。最近又想著開一個博客,本想著第一篇博客來想講下cocoapod的使用,但今天在做一個例子時,用到了block,心想網上能查到的block,前篇一律,大部分是個語法。但真正的項目中如何使用block呢,于是乎提筆記下此文,書寫下自己對block最常用的方式,也作為自己博客的新篇章。此文只是作為block的理解的輔助文章,如有不合理,不對的地方,請不要吝嗇閣下的流量,猛戳進來。
以下開始正文:
block常用的方式:屬性,
方法參數,
對于我來說,block最常用的方法就是代替協議。而代替協議使用的時候,屬性和方法參數就需要關聯使用。
先看下我例子實現的效果,就是一個滾動視圖,當點擊某一個item時,返回相應item的內容:
定時滾動很簡單。代碼就不貼了。主要說說點擊滾動視圖時怎么返回里面的值。這個功能當然用delegate也能實現,但這樣簡單的回調我更傾向于用block。下面就說說block的實現方法。
首先要在這個滾動視圖的類中聲明一個block屬性,就是上面的第一張截圖,返回值空,參數需要一個字符串,
再者,聲明一個block作為參數的方法,就是上面的第二張截圖,這個block就是返回所需要的字符串值。
.m中的實現也非常簡單,
先把方法中的block和屬性進行綁定,說白點就是賦值:
這樣在調取這個方法時,所執行的block就是屬性block。
然后,在item的點擊方法中給屬性block 進行賦值:
這樣就已經OK 了,看下實現:
這個方法你就可以在初始化self.rollView后直接調用,不需要協議那樣單拿出來個方法了。
第一次寫博客,不知道怎么傳自己的demo,可能這里也不支持吧。如果有需要,我會上傳到gitHub上,供使用。
此文有用無用,請給個評論,指正我寫作的方式,也讓我自己能夠寫出更好的內容,謝謝。