我試圖在iOS應用程序中實現可摺疊表格視圖。爲此,我在節標題中設置了一個手勢識別器,該手勢識別器將觸發NSNotification到父控制器,然後將刷新顯示展開視圖的視圖。發送NSNotification時無法識別選擇器
一切正常,直到父控制器接收它的消息,這將導致出現以下錯誤:
'+[MasterViewController receiveTestNotification:]: unrecognized selector sent to class 0xa92a8'
我已經在這個網站環顧四周,發現關於此錯誤的幾個職位,但據我所知,我沒有犯這些錯誤。
我的登記發生在控制器的初始化,看起來像這樣:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveTestNotification:) name:@"RefreshNavigation" object:nil];
接收器的方法我想叫有這樣的簽名:
- (void) receiveTestNotification:(NSNotification *) notification
我發這個通知,像這樣,這在UIView的一個自定義子類中,我用作區段標題:
[[NSNotificationCenter defaultCenter] postNotificationName:@"RefreshNavigation" object:self];
我發現的例子指向了這個確切的配置。我確信控制器不會被釋放,因爲它在整個應用程序中很快就會被使用。
關於我在做什麼錯的任何想法?
光榮!就是這樣!我將訂閱調用移動到viewdidload方法,現在它可以工作。謝謝。 –
「我相信問題在於你正在註冊initialize方法中的通知,這是一個類方法,所以在這個上下文中self是指類本身,而不是實例。」 - 這是非常正確的。 –