在我的iPad應用程序,在一類我註冊一個通知:NSNotificationCenter選擇不會被調用
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(selectedList:) name:@"TTSelectedList" object:nil];
我selectedList:
方法是這樣的:
- (void)selectedList:(NSNotification*)notification
{
NSLog(@"received notification");
}
另一類
然後(一UITableViewController
)當我選擇一行時發佈通知:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"posting notification");
[[NSNotificationCenter defaultCenter] postNotificationName:@"TTSelectedList" object:nil];
}
我可以確認通知已發佈,因爲「發佈通知」會記錄到控制檯,但「接收通知」永遠不會被調用,這意味着通知未收到且選擇器尚未被調用。我無法弄清楚是什麼原因造成的。
感謝
一些愚蠢的東西,但讓我感到困惑了一段時間。我遇到過同樣的問題。在我的情況下,我沒有注意到一個子類具有與我試圖在父類中聲明的那個相同的選擇器的方法。 – 2012-09-04 23:07:22
有我自己,也有些愚蠢:我用小寫字母而不是大寫字母發佈通知。他們區分大小寫! – 2015-01-06 08:40:56