ios幾大程式設計思想
物件導向思想:萬物皆物件,做一件事情的過程轉變為物件處理事件的過程。
鏈式程式設計思想:將多個操作通過點(.)鏈結在一起成為一句**,使得**更好閱讀。例如p.add(1).add(2)。特別的地方在於每個方法返回乙個block,這個block的返回值又是這個物件本身,block的引數需要自己考慮實際情況。這裡在多講一下,為什麼add後面要加括號,還有引數。其實這個就是呼叫了這個block(block的呼叫就是括號,裡面新增引數).其代表最出名的第三方框架是masonry。不懂的可以去看看,這裡不貼**。
響應式程式設計思想:不需要考慮呼叫順序,只需要知道結果。產生乙個事件,會影響很多東西,這些事件像流一樣傳播出去,然後作用,最後產生結果。借用物件導向的一句話,萬物皆是流。其代表是kvo。
函式式程式設計思想:函式呼叫其他函式作為引數。其代表是reactivecocoa。
這裡寫幾個常用的reactivecocoa用法,語法主要為了高內聚低耦合。像btn的點選事件,textfiled的文字改變事件,或者通知,**等等。
// 1.代替**
// 需求:自定義redview,監聽紅色view中按鈕點選
// 之前都是需要通過**監聽,給紅色view新增乙個**屬性,點選按鈕的時候,通知**做事情
// rac_signalforselector:把呼叫某個物件的方法的資訊轉換成訊號,就要呼叫這個方法,就會傳送訊號。
// 這裡表示只要redv呼叫btnclick:,就會發出訊號,訂閱就好了。
[[redv rac_signalforselector:@selector(btnclick:)] subscribenext:^(id x) ];
// 2.kvo
// 把監聽redv的center屬性改變轉換成訊號,只要值改變就會傳送訊號
// observer:可以傳入nil
[[redv rac_valuesandchangesforkeypath:@"center" options:nskeyvalueobservingoptionnew observer:nil] subscribenext:^(id x) ];
// 3.監聽事件
// 把按鈕點選事件轉換為訊號,點選按鈕,就會傳送訊號
[[self.btn rac_signalforcontrolevents:uicontroleventtouchupinside] subscribenext:^(id x) ];
// 4.代替通知
// 把監聽到的通知轉換訊號
[[[nsnotificationcenter defaultcenter] rac_addobserverforname:uikeyboardwillshownotification object:nil] subscribenext:^(id x) ];
// 5.監聽文字框的文字改變
[_textfield.rac_textsignal subscribenext:^(id x) ];
// 6.處理多個請求,都返回結果的時候,統一做處理.
racsignal *request1 = [racsignal createsignal:^racdisposable *(idsubscriber) ];
racsignal *request2 = [racsignal createsignal:^racdisposable *(idsubscriber) ];
// 使用注意:幾個訊號,引數一的方法就幾個引數,每個引數對應訊號發出的資料。
[self rac_liftselector:@selector(updateuiwithr1:r2:) withsignalsfromarray:@[request1,request2]];
} // 更新ui
- (void)updateuiwithr1:(id)data r2:(id)data1
IOS程式設計思想整理
鏈式程式設計01 是將多個操作 多行 通過點號 鏈結在一起成為一句 使 可讀性好。a 1 b 2 c 3 鏈式程式設計特點 方法的返回值是 block,block 必須有返回值 本身物件 block 引數 需要操作的值 代表 masonry 框架。inte ce caculator nsobject...
IOS 工廠模式的面向協議程式設計思想
前言 oop開發有個原則是針對抽象程式設計而不是針對具體程式設計,實際的軟體開發中,因為時間和專案進度等客觀不可抵抗和主觀的因素,我們偏向使用最簡單的的方式去實現功能,而沒有考慮到未來可能會有的擴充套件問題,導致未來發生擴充套件的時候出現了維護性的災難,軟體模組不好擴充套件,需求變動就得修改模組,這...
iOS函式式程式設計的實現 響應式程式設計概念
簡介 本篇主要回顧一下 ios函式式程式設計 響應式程式設計概念 如何一步步實現函式式程式設計的過程,對閱讀masonry snapkit原始碼有一定的幫助。作為乙個ios 開發者,那麼你一定用過masnory snapkit masonry是乙個oc開發中,非常好用的自動布局的第三方框架 snap...