*** Assertion failure in -[UIAlertController addAction:], /SourceCache/UIKit/UIKit-3347.44/UIAlertController.m:121
UIAlertView→UIAlertControllerをやっていて、こんなのが出てしばらくハマったのでメモ。
結論から言うと、styleがUIAlertActionStyleCancelのactionは2つ以上addしてはいけない。
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"タイトル"
message:@"メッセージ"
preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"キャンセル"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
// キャンセルなんとか
}]];
[alert addAction:[UIAlertAction actionWithTitle:@"OK"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
// OKなんとか
}]];
パッと見で気が付かないよ・・・。
2つめの「UIAlertActionStyleCancel」は「UIAlertActionStyleDefault」か「UIAlertActionStyleDestructive」にしましょう。
アサーションならもうちょっとメッセージに情報が欲しいなぁ。