Cocoa設計模式之通知

2021-09-06 05:18:26 字數 944 閱讀 8782

以前覺得通知比較難搞,總是避免。但是折騰一番後發現真的是個好東西,用起來很好。整理下使用方法。

一、首先,在viewdidload或者其他地方新增通知

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(updatetable:) name:@"

updatetable

"object:nil];

nsnotificationcenter為乙個單例模式的類,能呼叫的方法也比較有限,可以自行查閱api。addobserver:後面的引數為你當前的類,或者你要接收訊息的類。selector:收到通知後需要執行的方法。name為通知的名字,object可以作為訊息傳遞的引數。

二、定義通知完成後所要執行的方法

- (void)updatetable:(nsnotification *)sender

sender為發布通知的時候傳遞過來的引數

三、在你需要呼叫方法時發布通知

[[nsnotificationcenter defaultcenter] postnotificationname:@"

updatetable

"object:nil userinfo:dictionary];

dictionary為之前定義的引數

nsarray *array = [[nsarray alloc] initwithobjects:@"

foxbabe

",@"

philiphu

", nil];

nsdictionary *dictionary = [[nsdictionary alloc] initwithobjectsandkeys:array,@"

names

", nil];

Cocoa設計模式之委託

protocol 協議,就是使用了這個協議後就要按照這個協議來辦事,協議要求實現的方法就一定要實現。delegate 委託,顧名思義就是委託別人辦事,就是當一件事情發生後,自己不處理,讓別人來處理。當乙個a view 裡面包含了b view,b view需要修改a view介面,那麼這個時候就需要用...

Cocoa 中的單例設計模式

static mygizmoclass sharedgizmomanager nil mygizmoclass sharedmanager return sharedgizmomanager id allocwithzone nszone zone return nil on subsequent ...

Linux通訊之非同步通知模式

參考 韋東山 教學筆記 為了使裝置支援非同步通知機制,驅動程式中涉及以下3項工作 1.支援f setown命令,能在這個控制命令處理中設定filp f owner為對應程序id。不過此項工作已由核心完成,裝置驅動無須處理。2.支援f setfl命令的處理,每當fasync標誌改變時,驅動程式中的fa...