NSUserDefaults值没有得到保存的iPhone

使用下面的代码来保存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 

为什么被称为两次,一旦它保存的价值,并显示出来,第二次给空。

我正在使用ARC。

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

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

[sessions setObject:sID forKey:@"sessionsID"];上放置一个断点[sessions setObject:sID forKey:@"sessionsID"];

第一次得到这个命中sID将是有效的。

然后发生了一些无效的sID 🙁

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