iOS鏈式編程架構介紹之LinkBlock,ioslinkblock

來源:互聯網
上載者:User

iOS鏈式編程架構介紹之LinkBlock,ioslinkblock

iOS鏈式編程之LinkBlock

  首先謝謝大家幫我點星星啦。

  [LinkBlock GitHub下載]

  從所周知,objc是非常奇怪的語言之一,如果沒有蘋果養著它,它因該已經只是教科書的課後拓展了。最直觀感受就是一般中括弧超過三層,不忍直視了。

所以綜合考慮完成了一個覆蓋基本面的擴充架構LinkBlock,基本上開發中常用的方法在這個版本中都可以點出來使用了。

  整個架構基於對NSObject的拓展,所有方法依託於擴充的屬性,他們都是block類型。

  寫法簡單,一氣呵成,減少思路被繁瑣建立打斷:

@"0xff22cc".strToColorFromHexStr();btn.viewSetFrame(20,20,150,80).viewBGColor(@"0xff22cc".strToColorFromHexStr()).viewAddToView(self.view).btnTitle(@"click change color", UIControlStateNormal);NSComparisonResult result = @"".setTo(&str).strAppend(@"abc1.txt").strCompareNumberSensitive(@"abc2.txt");

  架構考慮的對objc取值的安全性問題,為了保證程式不因從網路擷取到異常的值而崩潰,架構提供強型別的取值如:

dict.dictGetNoNSNull(@"key");dict.dictGetBOOLNoNullType(@"key");dict.dictGetArrNoNullType(@"key");dict.dictGetViewNoNullType(@"key");

  同時這也是對於學習Block用法的一個範例。

  同時解釋一下為什麼在NSObject上進行拓展,這是為瞭解決鏈式調用某一環調用失敗的問題,必須做到兩點才不會崩潰,第一:所有對象都響應所有擴充的屬性,這保證了在對象不為空白的時候調用不崩潰。第二:鏈條中間環節不能傳遞nil這個傢伙,你知道的[nil XXFuntion]這樣是不崩潰的,但是nil.XXProperty一定崩潰的。所以中間傳遞一個單例的錯誤對象,才能保證鏈條不崩潰的情況下調用到最後一環。那麼如果為了安全的擷取到最後一環的真實傳回值,架構唯一一點額外的要求就是使用end()在最後一環調用一下。那麼所有過程都是安全快速的。

  架構除了對數組,字典,字串著力外,還對視圖和常用動畫的使用也加入進來。但並不提供特別化的功能,為的是輕量和容易掌握。

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.