【发布时间】:2013-03-08 09:28:40
【问题描述】:
我正在使用这样的 addObserver:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(notificationReceived:) name:nil object: nil];
一切正常,但我认为当我不再需要它时移除观察者可能是一种很好的形式......我发现我需要使用这一行:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"observerName" object:nil];
问题是,当我更改我的 addObserver 行以包含名称以便 removeObserver 知道要删除哪个观察者时,不再调用通知。此行运行但在添加名称时被忽略:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(notificationReceived:) name:@"observerName" object: nil];
我可以将名称设置回 nil 并且它再次起作用。 有人知道我在这里做错了什么吗?
谢谢!
【问题讨论】:
-
你确定你的名字没有错字吗?
-
你可能会遇到拼写错误,而不是给两次,所以使用
const NSString *notificationName=@"observerName";并在所有地方使用它。
标签: iphone ios xcode nsnotificationcenter addobserver