iOS開發之觀察者

2021-07-12 02:21:58 字數 1223 閱讀 1769

//

觀察者事件  (!!註冊必刪除) [[

indexviewinformation

sharedinstance

] addobserver

:self

forkeypath

:@"selectedmoremodel"

options

:nskeyvalueobservingoptionnew

| nskeyvalueobservingoptionold

context

:nil];

[[indexviewinformation

sharedinstance

] addobserver

:self

forkeypath

:@"selectedbuymodel"

options

:nskeyvalueobservingoptionnew

| nskeyvalueobservingoptionold

context

:nil];

//刪除註冊的觀察者事件 [[

indexviewinformation

sharedinstance

] removeobserver

:self

forkeypath

:@"selectedbuymodel"];

[[indexviewinformation

sharedinstance

] removeobserver

:self

forkeypath

:@"selectedmoremodel"];

//觀察者觸發的事件,在觀察者觀察到變化的時候觸發 -(

void

)observevalueforkeypath:(

nsstring

*)keypath ofobject:(

id)object change:(

nsdictionary

*)change context:(

void

*)context

if([keypath

isequaltostring

:@"selectedbuymodel"

]) }

再次強調,觀察者新增必有刪除,如果忘記刪除,會導致意想不到的麻煩。

telephone:18341266547

敏捷開發之觀察者模式

事件響應是觀察者模式的核心點。我們在某個基礎類中定義這麼乙個成員變數,該成員變數的屬性值為get和set,具備預設值,在set下賦值後,加上一行 用來觸發事件響應。當外部程式,為該屬性值賦予新值時,將會觸發事件響應,做出相應操作。俗稱觀察者模式。mvp加觀察者模式是敏捷開發的乙個很好組合,順道在這裡...

IOS設計模式之觀察者模式

觀察者 observer 模式也叫發布訂閱 publish subscribe 模式,是mvc 模型 檢視 控制器 模式的重要組成部分。include usingnamespace std class observer class engine void download private obser...

IOS常用設計模式 觀察者模式(IOS開發)

觀察者模式 observer 也叫發布 訂閱模式 publish subscribe 問題 在軟體設計中,經常需要對乙個物件的狀態改變,從而引起很多物件的狀態發生改變。這個特點很明顯,復用性強,而且物件之間匿名通訊。觀察者模式最為適合。原理 舉個例子 包括四個角色 1 抽象主題 subject 是個...