Objective c NSUserDefaults和boolean-发生了什么?目标C

Objective c NSUserDefaults和boolean-发生了什么?目标C,objective-c,lldb,Objective C,Lldb,我有这个简单的代码来保存和恢复默认值的布尔值。 最后当我这样做的时候 po [defaults boolForKey:@"dummy"] 在调试器中,我看到nil 这是怎么回事 // Store the data NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setBool:(BOOL)boolValue forKey:@"dummy"]; [defaults synchronize]

我有这个简单的代码来保存和恢复默认值的布尔值。 最后当我这样做的时候

po [defaults boolForKey:@"dummy"]
在调试器中,我看到nil

这是怎么回事

// Store the data
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setBool:(BOOL)boolValue forKey:@"dummy"];

[defaults synchronize];

BOOL ans = [defaults boolForKey:@"dummy"];
我错在哪里

谢谢

更新:谢谢!现在,如果需要,请清除

p [defaults boolForKey:@"dummy"]
(这是用于打印基元类型的正确调试命令)而不是

po [defaults boolForKey:@"dummy"]
您将看到
NO

po表示
打印对象
,适用于
NSObject

p只是
print
,如果您这样做的话,它适用于像
BOOL
int
这样的原语

p [defaults boolForKey:@"dummy"]
(这是用于打印基元类型的正确调试命令)而不是

po [defaults boolForKey:@"dummy"]
您将看到
NO

po表示
打印对象
,适用于
NSObject


p只是
print
,适用于
BOOL
int

等基本体。您是否确认了控制。smartTerrainStarted不是nil?@MarkPowell BOOL值不能为nilTrue。哈哈,请忽略.PO是打印对象
(NSObject*)否
是零。可能会有很多问题。其中之一可能是由于布尔值的实际值。它的价值是什么?是不是?其次,-同步可能无法立即工作,因为这可能需要一段时间。如果延迟重新读取默认值,会发生什么情况?是否确认control.smartTerrainStarted不是nil?@MarkPowell BOOL值不能为nilTrue。哈哈,请忽略.PO是打印对象
(NSObject*)否
是零。可能会有很多问题。其中之一可能是由于布尔值的实际值。它的价值是什么?是不是?其次,-同步可能无法立即工作,因为这可能需要一段时间。如果延迟重新读取默认值,会发生什么情况?