我试图弄清楚为什么我的应用程序中的addObserver调用会导致EXC_BAD_ACCESS,而它的选择器应该被调用。让我解释更多,我在一个调用MFMessageComposeView的方法中执行addObserver调用,然后在第三方库ShareKit中添加"didFinish“通知的观察者。现在,每当应该调用addObserver的选择器时,都会引发一个EXC_BAD_ACCESS。另外,我的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!")];
}这不能工作的原因是什么?
谢谢!
发布于 2013-01-14 04:15:35
如果在发布通知时发生崩溃,则解决方案显然是一个已发布的目标。
NSNotificationCenter不保留已注册的观察员。你必须确保观察者在注册时仍然活着,并且在发布之前取消注册。
https://stackoverflow.com/questions/14307407
复制相似问题