[問題] awakeFromNib 和 NSNotification

看板MacDev作者 (chise)時間11年前 (2013/11/12 19:09), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
- (void)awakeFromNib { NSLog(@"awakeFromNib"); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillClose:) name:NSWindowWillCloseNotification object:window]; } 想請問各位 我對這段程式碼的理解有沒有錯誤 nib裡面有很多的object(我所創造的object 例如 NSString *astring NSTextField *textfield 和系統自動建立的 例如 NSWindow *window ) 他們原本都被archived了當我執行這個app的時候 他們就會被unarchived 此時每個object都會被send awakeFromNib這個message 所以 我所有的object都會收到我寫在awakeFromNib裡的程式碼 就類似 系統幫我寫了 [astring awakeFromNib]; [textfield awakeFromNib]; [NSWindow *window]; [其他1 awakeFromNib]; [其他2 awakeFromNib]; 然後 大家都被告知 當window這個object 發出名為NSWindowWillCloseNotification的消息時 所有的object (因為所有的object都call了awakeFromNib了 然後又用了self) 就要執行windowWillClose這個method 感覺應該不是這樣吧@@?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.231.81.247

11/13 12:29, , 1F
你寫的awakeFromNib是"被呼叫"的,因此也只有你寫的這個
11/13 12:29, 1F

11/13 12:29, , 2F
Object會執行這段code
11/13 12:29, 2F
文章代碼(AID): #1IWWngiT (MacDev)
文章代碼(AID): #1IWWngiT (MacDev)