【发布时间】:2013-03-25 21:33:38
【问题描述】:
我遇到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 的 init 存在问题,但即使将其对象替换为手动创建的 NSString *dwid_su = [NSString stringWithString:@"su"]; 也不起作用。
【问题讨论】:
-
嗨,朱利安。你试过
NSLog你的阵列吗?另外,如果您在调试器控制台中执行po weekdayIDs,您会得到什么? -
非常感谢您的评论,您是对的。我的数组工作得很好。
-
我是这么认为的,如果您对为什么首先遇到问题感兴趣,这里是答案stackoverflow.com/questions/10963268/…
标签: iphone objective-c nsstring nsarray nsuserdefaults