1

すべてのデータをNSUserDefaultsに保存しています。現在、特定のプレフィックスを持ついくつかのキーを配列に格納しようとしています。したがって、最初にUserDefaultsを辞書にロードします。

NSString *myPrefix = @"prefix";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *dict = [defaults dictionaryRepresentation];
for (NSString *keyWithPrefix in dict.keyEnumerator) {
    if ([keyWithPrefix hasPrefix: myPrefix]) {
        [relevantKeys addObject: keyWithPrefix];
    }
}

問題は、「dict」(UserDefaultsを表す)を出力するときです。いくつかのキーがありません。NSUserDefaultsは、一時的に必要のないキーを削除しますか?

4

3 に答える 3

1

いいえ、そうではありません。NSUserDefaultは永続ストレージです。次の回答を読んでください。非常に良い説明 があります。[NSUserDefaultsstandardUserDefaults]はどの程度永続的ですか?

于 2012-06-05T21:18:16.770 に答える
0

いいえ、[NSUserdefaults synchronize]でも更新するときに電話をかけていますか?

于 2012-06-05T21:16:42.960 に答える
0

必要-synchronizeなものを保存するときは、おそらくメソッドを使用する必要があります。つまり:

[[NSUserDefaults standardUserDefaults] setValue:someDictionary forKey:@"someKey"];
[[NSUSerDefaults standardUserDefaults] synchronize];
于 2012-06-05T21:21:06.367 に答える