swift中KVO的使用

2021-10-19 07:41:37 字數 1083 閱讀 9260

nsobject基類中預設遵守了nskeyvaluecoding協議,所以我們在使用kvo的時候必須是基於nsobject才能正常使用。在使用oc開發的時候由於我們在建立的類缺省會繼承nsobject所以可以直接使用kvo,但是在swift中我們必須手動顯示的繼承nsobject類,並且還需要新增@objc dynamic兩個關鍵字修飾否則無法使用。

方法一:個人感覺與使用oc時候的用法還是蠻類似的。

class kvoclass:nsobject 

class observerclass: nsobject

let kvo = kvoclass()

func observer()

override func observevalue(forkeypath keypath: string?, of object: any?, change: [nskeyvaluechangekey : any]?, context: unsafemutablerawpointer?)

deinit

} observerclass()

方法二:比較簡潔的乙個使用方法。

class kvotestclass: nsobject 

print("kvotestclass init")

}deinit

}var kvotestobj: kvotestclass? = kvotestclass()

kvotestobj?.name = "碼農晨仔"

kvotestobj = nil

總結:

1.必須顯示繼承nsobject

2.必須使用@objc dynamic修飾,否則無效。

3.demo位址

關於swift中KVO的簡單使用

通過kvo實現檢視背景顏色的輪換 class viewcontroller uiviewcontroller override func didreceivememorywarning class colormodel nsobject func timeaction 這個是colorview檢視裡...

KVO在tableView中的使用

第一次在這裡寫東西,以前都是在在 中進行備註,或者寫個備忘錄。找起來太麻煩,就轉戰這裡。慢慢豐富內容!文字功底太差也是乙個原因!現在ios開發大都是arc,但是有些地方需要注意,例如kvo,在你註冊屬性觀察者後,也需要在介面釋放時登出。不提其他,僅僅看看tableview中,因為tableviewc...

KVO的簡單使用

kvo key value observing 主要用於檢視 資料互動,比如介面中相關資料發生了變化,介面的顯示也要跟著變化,這時候就需要 kvo 建立介面和資料之間的連線。1.使用場景一 stockobj.h import inte ce stockobj nsobject property no...