1

アプリが開くたびに、特定の条件をチェックする場合。失敗すると、UIAlertView がユーザーに表示されます。

[alertview show] が実行されると、ビルドは xcode 4.4.1 でクラッシュしますが、xcode 4.3.2 および xcode 4.5 では問題なく動作します。

ここにコードがあります

    NSString *appMessage = [NSString stringWithFormat:@"Error Message HERE"];
UIAlertView *appMessageAlertView = [[UIAlertView alloc] initWithTitle:nil message:NSLocalizedString(appMessage,@"Error Message") delegate:self cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", @"ok"),nil];
appMessageAlertView.delegate = self;
[appMessageAlertView show];
[appMessageAlertView release];

重要な情報を見逃していました: クラッシュは iOS6 で発生します

4

3 に答える 3

0

これを試してみてください、それはうまくいくでしょう:

UIAlertView *appMessageAlertView = [[UIAlertView alloc] initWithTitle:nil message:@"Error    Message" delegate:self cancelButtonTitle:nil otherButtonTitles:@"ok",nil];
[appMessageAlertView show];
[appMessageAlertView release];
于 2012-09-25T10:09:57.950 に答える
0

UIAlertViewのdelgatesメソッドは、表示または却下されたときに呼び出されます。だから追加

 <UIAlertViewDelegate> in .h 

再びそれはさらにクラッシュします

 delegate:nil in line 2

次に削除します

appMessageAlertView.delegate = self;

 [appMessageAlertView release];
于 2012-09-25T09:42:44.393 に答える
0

タイトル文字列を設定してみてください。

また、最初の行は次のように簡略化できます。 NSString *appMessage = @"Error Message HERE";

すでに2行目にデリゲートを設定しているため、3行目も必要ありません。

ARCを有効にしている場合[appMessageAlertView release];は許可されていません。

使用している理由はありますotherButtonTitlesか?cancelButtonTitleに設定するのは簡単ではありませんNSLocalizedString(@"OK", nil)か?

于 2012-09-25T09:43:41.527 に答える