コードを潜在的なエラーから保護する必要があります。それらが発生した場合、アプリをさらに実行する意味がないため、ユーザーにメッセージを表示してからアプリを終了する必要があります。だから、私は条件をチェックしてからアラートを出しています:
if (someError){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"No database file exist. App will close now." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
デリゲート メソッドでは、NSAssert を使用してアプリを閉じています。
-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
NSAssert(0, @"closing");
}
}
また、ヘッダーにデリゲート プロトコルを含めました。ただし、アプリはアラートを表示するだけですが、[OK] を押すとフリーズし、「CoreAnimation: 例外を無視します: 閉じています」というメッセージが表示されます。何が欠けているか、または他にどのようなオプションが存在しますか?