我遇到NSUserDefaults
的奇怪行为。我最初将数组存储到 AppDelegate.m 中的用户默认值:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *weekdayIDs = [defaults objectForKey:@"weekdayIDs"];
if (weekdayIDs == nil) {
weekdayIDs = [NSArray arrayWithObjects:@"su", @"mo", @"tu", @"we", @"th", @"fr", @"sa", nil];
[defaults setObject:weekdayIDs forKey:@"weekdayIDs"];
}
[defaults synchronize];
现在在另一个视图控制器 ContentViewController.m 中,我想要检索数组:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *weekdayIDs = [defaults objectForKey:@"weekdayIDs"];
但我只是得到一个没有对象的数组,尽管它是count == 7
。我也使用arrayForKey:
,但结果相同。我在断点处添加了截图。
我经常使用NSUserDefaults
,但目前我有点困惑于此。这可能是一个愚蠢的错误,有人愿意帮忙吗?
非常感谢你!
- 更新:
我也认为首先可能是NSArray的初始化问题,但即使用手动创建的NSString *dwid_su = [NSString stringWithString:@"su"];
替换它的对象也不起作用。
答案 0 :(得分:2)
您的代码运作正常。
只需打印数组的描述,您就会看到自己想要的内容。
右键单击weekdayIDs
变量,然后选择打印工作日的描述
或通过lldb调试器控制台po weekdayIDs
或NSLog(@"%@", weekdayIDs);
结果。