下面的方式能接收到通知嗎?為什麼

2022-06-15 19:30:16 字數 911 閱讀 1428

//

接收通知

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

testnotification

"object:@1

];//

傳送通知

[nsnotificationcenter.defaultcenter postnotificationname:@"

testnotification

"object:nil];

不能需要了解通知中心儲存通知觀察者的結構了,具體如下:

//

根容器,nsnotificationcenter持有

typedef struct

nctbl nctable;

//observation 儲存觀察者和響應結構體,基本的儲存單元

typedef struct

obs observation;

nameless與named的具體資料結構如下:

如上圖所示,當新增通知監聽的時候,我們傳入了name和object,所以,觀察者的儲存鍊錶是這樣的:

named表:key(name):value->key(object):value(observation)

因此在傳送通知的時候,如果只傳入name而並沒有傳入object,是找不到observation的,也就不能執行觀察者**

linux shell下面的快捷方式

ctrl鍵組合 ctrl a 游標移到行首。ctrl b 游標左移乙個字母 ctrl c 殺死當前程序。ctrl d 退出當前 shell。ctrl e 游標移到行尾。ctrl h 刪除游標前乙個字元,同 backspace 鍵相同。ctrl k 清除游標後至行尾的內容。ctrl l 清屏,相當於c...

JsonIgnore導致不能接收引數

最近的專案裡有某個屬性需要接收,但不需要返回,於是新增了 jsonignore但隨後發現了bug,這個屬性也不能接收了,查閱資料發現,從2.6版本起 如果想接收則需要新增 jsonproperty 則可實現接收,但不返回的效果 這2個註解直接加在字段上即可,也可以 jsonignore 新增在 ge...

JsonIgnore導致不能接收引數

最近用了jsonignore之後,在寫註冊的時候突然發現這個引數不能接受引數了,於是就檢視了一下資料,從1.9版本起 如果想接收引數的話,則需要新增 jsonproperty 則可實現接收,但不返回的效果 這2個註解直接加在字段上即可,也可以 jsonignore 新增在 getter jsonpr...