andというクラスがFlightRecorder
ありBookmarkTableViewController
ます。今、私はを提示していBookmarkTableViewController
ます。そして今、そのView Controllerを却下しています。コードは次のようになります。
[self dismissViewControllerAnimated:YES completion:^{
FlightRecorder *fl = [[FlightRecorder alloc] init];
[fl endBookmarkProcessWithBookmarkCollection: dict];
}
これは、テーブル ビュー セルの選択後に呼び出されます。したがって、次のようなを渡すFlightRecorder
と呼ばれるメソッドがあります。endBookmarkProcessWithBookmarkCollection:
NSDictionary
- (void)endBookmarkProcessWithBookmarkCollection: (NSDictionary *)dict {
NSString *compiledText = @"Random Airline";
NSString *string = [NSString stringWithFormat: @"\nMiles: %.2f\nFlight: %@\nDate: %@", [[dict objectForKey: @"miles"] floatValue], compiledText, [[NSUserDefaults standardUserDefaults] objectForKey:@"tempD"]];
self.bkBookmarkAlertView = [[UIAlertView alloc] initWithTitle:@"Confirmation" message:string delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Add", nil];
[bkBookmarkAlertView show];
}
ご覧のとおり、辞書とその他の変数を使用して、アラート ビューのメッセージをつなぎ合わせています。アラート ビューには、[キャンセル] と [追加] の 2 つのボタンがあります。しかし問題は、どちらかを押すと両方ともクラッシュし、clickedButtonAtIndex:
デリゲート メソッドが呼び出されないことです。まったく同じView Controllerの他のアラートビューでこの経験はありません。
同様の方法で他のいくつかの質問を見ましたが、それらはARCを使用していた解決策です。self
要するに、アラート ビューのデリゲートである は、nil または overreleased またはそのようなものであると彼らは言いました。だから私は、そのメソッドは見かけの完了時に呼び出されたとしても、ビューがロードされる前に呼び出されているのかもしれないと思ったBookmarksTableViewController
.
そこで、とNSLog
の両方に 'sを入れることにしましたが、 が最初に呼び出されるので、どこに問題があるのかわかりません。viewDidLoad
endBookmarkProcessWithBookmarkCollection:
viewDidLoad
助けてくれてありがとう!