0

これは奇妙に聞こえるかもしれませんが、以前のアプリではこれが機能していましたが、現在のアプリでは同じコードを使用して機能させることができません。アプリを使用して起動したときにアラートビューを一度だけ表示しようとしています:

 if (![@"1" isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"alert"]]){

    [[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"alert"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}



 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"Text here" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];

[alert show];

ここでばかげたことをした場合に備えて、誰かがチェックしてくれませんか。これが機能しているアプリと照合してクロスチェックしましたが、すべて同じようです。

4

1 に答える 1

5

if ブロック内にアラートを表示する

if (![@"1" isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"alert"]]){

    [[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"alert"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"Text here" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];

    [alert show];

}

または使用

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"alertShownOnce"] == NO)
{
   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"Text here" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];
    [alert show];
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"alertShownOnce"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
于 2012-07-08T20:18:05.553 に答える