NSUser默认不保存任何值

时间:2014-01-01 11:20:00

标签: ios iphone nsuserdefaults

我正在尝试将来自服务器的userid存储到userDefaults这是一个NSUserDefault对象,但它总是显示0为userDefaults的值,我曾尝试过使用setObject方法,但仍然无法正常工作,我检查了信息来自服务器它从来没有为用户ID的值0.永远不是0但是NSUserDefault仍为它显示为0。

int userid=[[userdata objectForKey:@"id"] integerValue];
[userDefaults setInteger:userid forKey:@"UserID "];
[userDefaults synchronize];
NSLog(@"UID: %d",[[NSUserDefaults standardUserDefaults] integerForKey:@"UserID"]);

请帮助我谢谢。

4 个答案:

答案 0 :(得分:9)

您正在使用密钥@"UserId " 注意空格并使用密钥@"UserId" 进行阅读而无需额外空间

答案 1 :(得分:6)

正如DavidRönnqvist指出的那样,你的一个钥匙中有一个空间,而另一个钥匙则没有。

我通常做的是#define文件constants.h中的所有用户默认密钥,然后使用这些常量而不是每次都重新键入字符串文字。这会使像您这样的错误变得不可能,并且还可以更容易地跟踪您正在使用的密钥。

答案 2 :(得分:2)

您可以尝试这种方式来存储和检索数据。 用于设置值..

[[NSUserDefaults standardUserDefaults]setInteger:10 forKey:@"USERID"];

用于检索值..

NSLog(@"%d",[[[NSUserDefaults standardUserDefaults] valueForKey:@"USERID"]integerValue]);
祝你好运..

答案 3 :(得分:0)

你可以试试这种方式

int userid=[[userdata objectForKey:@"id"] integerValue];

[userDefaults setInteger:userid forKey:@"UserID"];

[userDefaults synchronize];

NSLog(@"UID: %d",[[NSUserDefaults standardUserDefaults] integerForKey:@"UserID"]);

快乐的编码........