コードのこの部分でランダムにクラッシュします。
-(void) goBack {
[self performSelectorInBackground:@selector(addActivityIndicator) withObject:nil];
[self.navigationController popViewControllerAnimated:YES];
}
- (void)addActivityIndicator {
@autoreleasepool {
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithCustomView:activityView];
[activityView startAnimating];
self.navigationItem.leftBarButtonItem = barButton;
}
}
これらのメソッドが存在する画面を終了する場合、他のViewControllerがいくつかのデータを処理する必要があります。処理が行われていることをユーザーに通知するために、ナビゲーションバーの左ボタンにアクティビティインジケーターを追加します。
問題は、時々exc_bad_access
inaddActivityIndicator
メソッドを取得することです。頻度は非常にランダムであり、XCodeが最後にエラーを表示することもあれば、@autoreleasepool
行にエラーを表示することもありますself.navigationItem.leftBarButtonItem = barButton;
私のviewControllerが破壊されることがあると思いますが、スレッドはまだ実行中であり、もう存在しないオブジェクトのnavigationItemにアクセスしようとします。しかし、それが問題であるかどうかはわかりません。また、それを修正する方法もわかりません。
プロジェクトでARCを使用していますが、この問題は、テストしたすべてのiOSバージョンで発生します。
どうか、誰でも私に何が起こっているのか説明できますか、どうすればこれを修正できますか?
ありがとう。