首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用addObserver时使用NSNotificationCenter EXC_BAD_ACCESS?

在使用addObserver时使用NSNotificationCenter EXC_BAD_ACCESS?
EN

Stack Overflow用户
提问于 2013-01-14 03:42:52
回答 1查看 3.1K关注 0票数 1

我试图弄清楚为什么我的应用程序中的addObserver调用会导致EXC_BAD_ACCESS,而它的选择器应该被调用。让我解释更多,我在一个调用MFMessageComposeView的方法中执行addObserver调用,然后在第三方库ShareKit中添加"didFinish“通知的观察者。现在,每当应该调用addObserver的选择器时,都会引发一个EXC_BAD_ACCESS。另外,我的addObserver在一个NSObject类中,如果这有什么不同的话。

这是我在addObserver中使用的代码:

代码语言:javascript
复制
        NSString *moredetailedshareText = [NSString stringWithFormat:@"Hey"];
        [SHKTextMessage shareText:moredetailedshareText];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(SHKSharerFinished:) name:@"SHKFinishedCall" object:nil]; 

这是ShareKit中的postNotification调用:

代码语言:javascript
复制
- (void)sharerFinishedSending:(SHKSharer *)sharer
{
    NSLog(@"finishedsending");
    [[NSNotificationCenter defaultCenter] postNotificationName:@"SHKFinishedCall" object:sharer];
    if (!sharer.quiet)
        [[SHKActivityIndicator currentIndicator] displayCompleted:SHKLocalizedString(@"Saved!")];
}

这不能工作的原因是什么?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-01-14 04:15:35

如果在发布通知时发生崩溃,则解决方案显然是一个已发布的目标。

NSNotificationCenter不保留已注册的观察员。你必须确保观察者在注册时仍然活着,并且在发布之前取消注册。

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

https://stackoverflow.com/questions/14307407

复制
相关文章

相似问题

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