我正在尝试将来自服务器的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"]);
请帮助我谢谢。
答案 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"]);
快乐的编码........