NSUserDefaults值未获得iPhone保存

时间:2012-01-03 10:52:01

标签: iphone objective-c ios

使用以下代码保存sessionID。

 NSUserDefaults *sessions = [NSUserDefaults standardUserDefaults];

[sessions setObject:sID forKey:@"sessionsID"];

[sessions synchronize];

NSLog(@"Session Value Saved");

检索值的代码是:

NSUserDefaults *sessions = [NSUserDefaults standardUserDefaults];

NSString *myString = [sessions stringForKey:@"sessionsID"];

NSLog(@"nsuser: %@", myString);

但在控制台上显示如下:

2012-01-03 15:37:37.292 LoginTest[574:12503] sID: c339af83caa5355d124f70e3f22c193d
2012-01-03 15:37:37.296 LoginTest[574:12503] Session Value Saved
2012-01-03 15:37:37.297 LoginTest[574:12503] Accounts: ("uid=demo@url.com", "o=Demo","o=Und")
2012-01-03 15:37:37.302 LoginTest[574:12503] sID: (null)
2012-01-03 15:37:37.304 LoginTest[574:12503] Session Value Saved
2012-01-03 15:37:37.304 LoginTest[574:12503] Accounts: (null)
2012-01-03 15:37:37.305 LoginTest[574:12503] No Session created

为什么它被调用两次,一旦它保存值并显示它们并且第二次给出null。

我正在使用ARC。

我搞砸了这个......请指导我如何解决这个问题

1 个答案:

答案 0 :(得分:1)

我们不知道为什么它会被召唤两次;这是你的应用程序:)

[sessions setObject:sID forKey:@"sessionsID"];

上放置一个断点

第一次点击sID将有效。

然后发生了使sID无效的事情:(

第二次被点击它看起来sIDnull - 你应该能够使用控制台/堆栈来解决为什么它被调用两次。