1. ホーム
  2. ios

[解決済み] シミュレータでアプリをアンインストールしてもNSUserDefaultsがクリアされない

2023-01-18 08:42:38

質問

これは本当にNOOBに聞こえるかもしれません! 私はユーザーが私のアプリケーションに入るのが2回目かどうかをチェックしたいので、実行カウントを維持するために、私は NSUserDefaults . 私は次のコードを私の rootViewController 's viewDidLoad メソッドを使用します。

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

    NSLog(@"hello %ld", (long)[userDefaults integerForKey:@"runCount"]);

    if ([userDefaults integerForKey:@"runCount"] != 1) {
        //not the 2nd run
        [userDefaults setInteger:1 forKey:@"runCount"];
        NSLog(@"not 2nd run");
    } else {
        //second run or more
        NSLog(@"2nd run");
    }

    [userDefaults synchronize];

はすべて正常に動作しますが、問題は、アプリケーションをアンインストール(削除して再インストール)する際に ここで はこちら と入力すると、データがクリアされるはずなのですが、クリアされず、アプリを再インストールしても以前のデータが表示されたままです。 私は、xCode6-beta を使用して iOS シミュレーター上でアプリを実行し、iOS 8 にアプリケーションをターゲティングしています。

どのように解決すればよいですか。

iOS8 Beta Simulator のバグが原因だと思います。

期待される動作は、アプリが削除されると、そのアプリの NSUserDefaults も削除されることです。

  • しかし、NSUserDefaults は ではない は、シミュレータからアプリを削除すると削除されます。
  • iOS8 を実行している物理デバイスから削除した場合、それらは正しく削除されます。

今のところ、手っ取り早く厄介な解決策は、「iOS Simulator -> Reset Content and Settings」をクリックすることです。

Xcode 9.2 と Simulator 10 は、まだこの問題を提示しています。メニュー オプションは Hardware ... Erase All Content and Settings (すべてのコンテンツと設定を消去) になりました。

私はバグ レポートを提出しました。