我想弄清楚爲什麼我的應用程序中的addObserver調用在調用選擇器時導致EXC_BAD_ACCESS。讓我再解釋一下,我在調用MFMessageComposeView的方法中執行addObserver調用,然後在第三方庫ShareKit中爲「didFinish」通知添加觀察者。現在無論何時調用addObserver的選擇器,都會引發EXC_BAD_ACCESS。如果這有什麼區別,我的addObserver也在NSObject類中。使用addObserver時,NSNotificationCenter EXC_BAD_ACCESS?
這是我使用的的addObserver代碼:
NSString *moredetailedshareText = [NSString stringWithFormat:@"Hey"];
[SHKTextMessage shareText:moredetailedshareText];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(SHKSharerFinished:) name:@"SHKFinishedCall" object:nil];
這是postNotification呼叫ShareKit:
- (void)sharerFinishedSending:(SHKSharer *)sharer
{
NSLog(@"finishedsending");
[[NSNotificationCenter defaultCenter] postNotificationName:@"SHKFinishedCall" object:sharer];
if (!sharer.quiet)
[[SHKActivityIndicator currentIndicator] displayCompleted:SHKLocalizedString(@"Saved!")];
}
會。這是什麼原因不工作?
謝謝!
你打開[殭屍](http://stackoverflow.com/a/4917557/1354100)?可能ShareKit釋放已經發布的東西,你使用ARC嗎? – Bejmax
沒有ShareKit沒有使用ARC。我沒有打開殭屍,但我不認爲這會有所幫助。 –
我沒有問過如果ShareKit使用ARC,我問你是否在你的構建中啓用了ARC。 NSZombiesEnabled將爲您提供更多關於什麼時候不應該被釋放的信息。 – Bejmax