在开发iPhone应用程序并尝试通过标准NSUserDefaults机制保存首选项时,我一直遇到非常不一致的结果.我正在使用Erica Sadun的iPhone Developer's Cookbook中的代码(精彩的书btw),它看起来像这样:
(void) updateDefaults { 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] synchronize]; [spells release]; [locs release]; }
值有时会被保存,有时会被恢复.我无法确定它是什么或不能使它起作用.
还有其他人有类似的经历吗?关于什么可能使它工作的任何建议?同步方法是强制磁盘写入并使值保存的最佳方法,还是有更好的方法(对于生产和模拟器而言).
谢谢瑞恩