在开发 iPhone 应用程序并尝试通过标准 NSUserDefaults 机制保存首选项时,我遇到了非常不一致的结果。我使用的代码几乎直接来自 Erica Sadun 的 iPhone Developer's Cookbook(顺便说一句很棒的书),它看起来像这样:
(无效)更新默认值 { NSMutableArray *spells = [[NSMutableArray alloc] init]; NSMutableArray *locs = [[NSMutableArray alloc] init]; for (DragView *dv in [boardView subviews]) { [spells addObject:[dv whichSpell]]; [locs addObject:NSStringFromCGRect([dv frame])]; } [[NSUserDefaults standardUserDefaults] setObject:spells forKey:@"spells"]; [[NSUserDefaults standardUserDefaults] setObject:locs forKey:@"locs"]; [[NSUserDefaults standardUserDefaults] 同步]; [法术释放]; [位置释放]; }
这些值有时会被保存……有时会被恢复。我无法确切知道什么使它起作用或不起作用。
有没有其他人有类似的经历?关于什么可能使它起作用的任何建议?同步方法是强制写入磁盘并保存值的最佳方法,还是有更好的方法(用于生产和模拟器)。
谢谢瑞恩