首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >addObserver:名称

addObserver:名称
EN

Stack Overflow用户
提问于 2013-03-19 23:44:53
回答 1查看 652关注 0票数 0

我使用的addObserver如下:

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(notificationReceived:) name:nil object: nil];

一切都运行得很好,但我认为当我不再需要观察者时,移除它可能是一种很好的形式……我发现我需要使用这一行:

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"observerName" object:nil];

问题是,当我更改addObserver行以包含名称,以便removeObserver知道要删除哪个观察者时,将不再调用通知。将运行以下代码行,但在添加名称时将其忽略:

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(notificationReceived:) name:@"observerName" object: nil];

我可以将名称重新设置为nil,它将再次工作。有人知道我哪里做错了吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-19 23:52:51

我想你可能把参数的含义搞错了。

name:告诉系统要通知您哪些通知。

self是实际的观察者,所以当您removeOberserver:self时,您将停止接收任何通知。

您应该再次仔细阅读文档,了解它们的含义:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html#//apple_ref/doc/uid/20000219-SW1

有关示例,请参见How to create a class to send and receive events through NSNotificationCenter in Objective-C?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15504022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档