セレクターを呼び出す必要があるときに、アプリでの 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!")];
}
これが機能しない原因は何ですか?
ありがとう!