IOS程式設計思想的概念

2022-08-10 04:18:10 字數 1910 閱讀 1683

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...