[英]I can't store or read NSUserDefaults
It seems something is going wrong, I can't store or read NSUserDefaults in my code: 似乎出了点问题,我无法在代码中存储或读取NSUserDefaults:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray * defaultKeys = [NSArray arrayWithObjects:
@"FirstViewComposer",
@"ProfileNickname",
@"ProfileGender",
@"ProfileDateOfBirth",
@"ProfileFavoriteColor",
@"ProfileHeight",
nil];
NSArray * defaultValues = [NSArray arrayWithObjects:
@"YES",
@"Me",
@"Male",
@"08 Dec 1983"
@"Red",
@"183",
nil];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:defaultValues forKey:defaultKeys];
[defaults registerDefaults:appDefaults];
NSLog(@"%@", [defaults stringForKey:@"FirstViewComposer"]); //null
thanks 谢谢
UPDATE : Now I'm synchronized, actually they are stored but I'm probably not retrieving them correctly: 更新 :现在我已同步,实际上它们已存储,但是我可能没有正确检索它们:
2011-08-23 17:16:06.932 Sansnuage[1404:b603] defaults: (
(
en,
fr,
de,
ja,
nl,
it,
es,
pt,
"pt-PT",
da,
fi,
nb,
sv,
ko,
"zh-Hans",
"zh-Hant",
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
he,
ro,
sk,
th,
id,
"en-GB",
ca,
hu,
vi
),
1,
(
YES,
Me,
Male,
"08 Dec 1983Red",
183
),
"en_US",
(
"en_US@hw=US;sw=QWERTY"
),
(
en,
fr,
de,
ja,
nl,
it,
es,
pt,
"pt-PT",
da,
fi,
nb,
sv,
ko,
"zh-Hans",
"zh-Hant",
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
he,
ro,
sk,
th,
id,
"en-GB",
ca,
hu,
vi
),
macintosh
)
You have to synchronize your data before retrieve them from disk. 您必须先同步数据,然后才能从磁盘检索数据。 To do so you should use synchronize method.
为此,您应该使用同步方法。
UPDATE: You should change the way you try to store your appDefaults NSDictionary. 更新:您应该更改尝试存储appDefaults NSDictionary的方式。 Try:
尝试:
#define kAppDefaultEnty @"AppDefaultsEntry"
[defaults setObject:appDefaults forKey:kAppDefaultEnty];
And then synchronize it: 然后同步它:
[defaults synchronize];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.