0

重複の可能性:
iPhone シミュレーターで NSUserDefaults データをリセットするにはどうすればよいですか?

私のプロジェクトでは、異なるキーを使用して NSUserdefaults にいくつかの値を保存しています。また、ユーザーのデフォルトに保存されているボタンの値をクリックすると、アプリにリセットボタンがあり、削除する必要があります。キーなしでこれらの値を削除する方法はありますか?addSuitedNamed:このシナリオでは、removeSuitedName を使用できます。

4

3 に答える 3

6
NSUserDefaults * myNSUserDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [myNSUserDefaults dictionaryRepresentation];
for (id key in dict) {

     //heck the keys if u need
     [myNSUserDefaults removeObjectForKey:key];
}
[myNSUserDefaults synchronize];

また

[NSUserDefaults resetStandardUserDefaults];
[NSUserDefaults standardUserDefaults];
于 2012-11-21T05:21:55.653 に答える
1

ボタンのクリックで呼び出されるセレクターを使用すると、同じことを実現できます

- (IBAction)btnResetUserDefaultsPressed:(id)sender {
    NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
    NSDictionary* dictUserDefaults = [userDefaults dictionaryRepresentation];
    for (id akey in dictUserDefaults) {
        [userDefaults removeObjectForKey:akey];
    }
    [userDefaults synchronize];
}

質問の 2 番目の部分については、確かにこれが役立つと思います。

于 2012-11-21T05:30:06.363 に答える
1

を使用してNSUserDefaultの値をリセットできますresetStandardUserDefaults

このコードを確認してください:

[NSUserDefaults resetStandardUserDefaults];
[NSUserDefaults standardUserDefaults];

また、次のことができます。

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

または、次を使用できます。

NSUSerDefaults *default = [NSUserDefaults standardUserDefaults];
NSDictionary *dictionary = [default dictionaryRepresentation];
for (NSString *key in [dictionary allKeys])
{
    [default removeObjectForKey:key];
}
[default synchronize];
于 2012-11-21T05:24:42.887 に答える