Ios NSNotificationCenter EXC\u使用addObserver时访问错误?

Ios NSNotificationCenter EXC\u使用addObserver时访问错误?,ios,exc-bad-access,sharekit,nsnotificationcenter,Ios,Exc Bad Access,Sharekit,Nsnotificationcenter,我正在试图弄清楚为什么我的应用程序中的addObserver调用会在应该调用其选择器时导致EXC_BAD_访问。让我进一步解释一下,我在调用MFMessageComposeView的方法中调用addObserver,然后在第三方库ShareKit中为“didFinish”通知添加一个观察者。现在,无论何时调用addObserver的选择器,都会引发EXC_BAD_访问。另外,我的addObserver在NSObject类中,如果这有什么区别的话 这是我用于addObserver的代码:

我正在试图弄清楚为什么我的应用程序中的addObserver调用会在应该调用其选择器时导致EXC_BAD_访问。让我进一步解释一下,我在调用MFMessageComposeView的方法中调用addObserver,然后在第三方库ShareKit中为“didFinish”通知添加一个观察者。现在,无论何时调用addObserver的选择器,都会引发EXC_BAD_访问。另外,我的addObserver在NSObject类中,如果这有什么区别的话

这是我用于addObserver的代码:

        NSString *moredetailedshareText = [NSString stringWithFormat:@"Hey"];
        [SHKTextMessage shareText:moredetailedshareText];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(SHKSharerFinished:) name:@"SHKFinishedCall" object:nil]; 
这是ShareKit中的postNotification调用:

- (void)sharerFinishedSending:(SHKSharer *)sharer
{
    NSLog(@"finishedsending");
    [[NSNotificationCenter defaultCenter] postNotificationName:@"SHKFinishedCall" object:sharer];
    if (!sharer.quiet)
        [[SHKActivityIndicator currentIndicator] displayCompleted:SHKLocalizedString(@"Saved!")];
}
是什么原因导致这不起作用


谢谢

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


NSNotificationCenter不保留已注册的观察员。您必须确保该观察者在注册时仍处于活动状态,并且在发布之前已取消注册。

是否打开了?可能ShareKit正在释放一些已经发布的内容,您是否正在使用ARC?没有ShareKit没有使用ARC。我还没有打开僵尸,但我认为这不会有帮助。我没有问ShareKit是否使用ARC,我是问你的构建中是否启用了ARC。NSZombiesEnabled将为您提供更多信息,说明在不应该发布的时候到底发布了什么。哦,不,我没有使用ARC。事实上,我最终在另一个类中完成了NSNotification observer的工作,这是出于一些奇怪的原因,但是ShareKit仍然给我带来了另一个与NSNotifications无关的问题。崩溃发生在应该调用addObserver方法时。因此,当应该调用sendDidFinish通知时,它就会崩溃。