【问题标题】:NSNotification being raised multiple timesNSNotification 被多次提出
【发布时间】:2011-02-02 09:42:40
【问题描述】:

我正在开发一个电子书阅读器,我遇到了以下问题。我正在使用 IBAction 方法发布一个 NSNotification,一旦点击按钮,它就会调用一个操作方法。它第一次工作得很好......每次点击按钮时都必须调用 IBAction 方法。完成此操作后,我需要转到我的主页,然后返回并再次单击按钮。这就是我面临的问题。从第二次开始,该方法被多次调用,并且数量一直在增加..请帮帮我....

//IBAction Method
if (sender.tag == PenToolAction) {

    GLogInfo(@"Pen tool tapped");
    [self hideSelf];
    [[NSNotificationCenter defaultCenter] postNotificationName:PenToolActionInitialized object:nil];
}

【问题讨论】:

  • 你把[[NSNotificationCenter defaultCenter] addObserver:...]电话放在哪里了?
  • 我已经把它放在接收器类的 ViewDidLoad 方法中了。

标签: iphone ipad nsnotifications nsnotificationcenter


【解决方案1】:

如果在多次调用的方法中添加通知观察者,也会多次收到通知。

尝试将[[NSNotificationCenter defaultCenter] addObserver:...] 放在init 方法中,或者在之前调用[[NSNotificationCenter defaultCenter] removeObserver:self]。

【讨论】:

  • 我希望苹果能更好地记录这一点。我希望有更好的公共 API,这样您就可以确定一个对象是否已经注册到给定的通知。
【解决方案2】:

非常感谢您的支持.. 我找到了问题的解决方案... 我的代码中的主要罪魁祸首是内存管理问题... 我使用 x-code 分析器检查泄漏发现我忘了释放一个主变量......我已经释放了变量,现在我的代码工作正常......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多