我遇到了一个非常奇怪的问题。
我正在使用[[NSUserDefaults standardUserDefaults] synchronize]
保存用户电子邮件和加密密钥,以便使用我的ipad应用程序登录我的网络服务器。如果我使用USB线将应用程序安装到我的设备上,此方法可以成功保存键值并完美地在模拟器上工作。
但是,如果我为企业用户上传我的.ipa文件并下载并安装应用[[NSUserDefaults standardUserDefaults] synchronize]
,则不会保存电子邮件和密钥并返回null
。
[[NSUserDefaults standardUserDefaults] setInteger:userId forKey:@"user_id"];
[[NSUserDefaults standardUserDefaults] setObject:self.email.text forKey:@"email"];
[[NSUserDefaults standardUserDefaults] setObject:post_key forKey:@"key"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSString *post_email = [[NSUserDefaults standardUserDefaults] valueForKey:@"email"];
NSString *post_key=[[NSUserDefaults standardUserDefaults] valueForKey:@"key"];
NSLog(@"post_email %@",post_email);
NSLog(@"post_key %@",post_key);
登录模拟器和设备
post_email xxxxxx@gmail.com
post_key xxxxxxx
LOG ON ORGANIZER安装.ipa文件的设备:
��May 17 13:31:19 xxxxxx[1590] <Warning>: post_email (null)
��May 17 13:31:19 xxxxxxx[1590] <Warning>: post_key (null)
为什么会这样?我怎样才能解决这个问题?
EDIT FOR FUTURE REFEFRENCES::::::
即使rmaddy的答案对于空值是正确的,但确切的问题是: ASIHTTPRequest begins but never ends
答案是:https://groups.google.com/forum/?fromgroups#!topic/asihttprequest/fw7PDcD2wKI
答案 0 :(得分:1)
要从NSUserDefaults
获取对象,您应该使用objectForKey:
,而不是valueForKey:
。 valueForKey:
用于键值编码(KVC)。