Iphone NSUserDefaults是否删除暂时不需要的密钥?
我将所有数据存储在NSUserDefaults中。 现在,我尝试在数组中存储一些具有特定前缀的键。因此,我首先将UserDefaults加载到字典中Iphone NSUserDefaults是否删除暂时不需要的密钥?,iphone,objective-c,ios,xcode,nsuserdefaults,Iphone,Objective C,Ios,Xcode,Nsuserdefaults,我将所有数据存储在NSUserDefaults中。 现在,我尝试在数组中存储一些具有特定前缀的键。因此,我首先将UserDefaults加载到字典中 NSString *myPrefix = @"prefix"; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSDictionary *dict = [defaults dictionaryRepresentation]; for (NSString *keyW
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”(表示用户默认值)时。有几把钥匙丢了。
NSUserDefaults是否删除暂时不需要的密钥 否,但您在更新它们时是否调用了
[NSUserdefaults synchronize]
?否,但在更新它们时是否调用了[NSUserdefaults synchronize]
?否,也就是说,NSUserdefaults是一个持久性存储,
请阅读下面的答案,它有一个很好的解释
不,NSUserDefault是一个持久性存储, 请阅读下面的答案,它有一个很好的解释
在存储所需内容时,您可能应该使用
-synchronize
方法。i、 e:
[[NSUserDefaults standardUserDefaults] setValue:someDictionary forKey:@"someKey"];
[[NSUSerDefaults standardUserDefaults] synchronize];
在存储所需内容时,您可能应该使用
-synchronize
方法。i、 e:
[[NSUserDefaults standardUserDefaults] setValue:someDictionary forKey:@"someKey"];
[[NSUSerDefaults standardUserDefaults] synchronize];
好的,谢谢,我错了。。我正在搜索的密钥从未写入UserDefaults:)好的,谢谢,我错了。。我正在搜索的密钥从未写入UserDefaults:)否,除非您与读取相同首选项的不同进程进行协调(这是不寻常的),否则您不需要调用
-synchronize
。否,除非您与读取相同首选项的不同进程进行协调(这是不寻常的),否则您不需要调用-synchronize
。