我想知道,将NSUserDefaults设置在需要使用的任何地方与将它们集中在一个管理位置相比是正确的。例如,在我的游戏中,在GamePlayScene类中,我为分数和级别设置了NSUserDeflaults,在Setting类中,我为音效设置了NSUserDefaults。这些只是我设置的NSUserDefaults中的一小部分。如果有一个管理它们的中心位置(类)是一个好主意,那么它应该放在哪里(类),以及我应该如何管理它们。谢谢。
发布于 2013-09-06 03:22:14
NSUserDefaults是一个键控归档文件。一个好的设计可能会使用这些方法之一:
+(void)setScore:(int)score之类的类方法在NSUserDefaults周围编写了一个简单的包装器来设置分数,而不需要知道使用哪个键来存储分数。你的项目越复杂,第二种方法就变得越好,因为创建额外方法的开销减少了,有利于减少错误,通常是通过使用错误的键作为值(即使用level键存储分数)。
发布于 2013-09-06 03:38:54
UserDefaults缓存在内存中,只有在您同步它们时才会写入。你可以随心所欲地给他们写信。集中化可能会使事情变得比需要的更复杂。
重要的是在正确的时刻同步它们。当应用程序被停用或终止时。
在我看来,UserDefaults已经是一个集中的地方来做这件事。
发布于 2014-05-22 19:09:18
[[NSUserDefaults standardUserDefaults]setObject:@"stringValue" forKey:@"strkey"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSString *str=[[NSUserDefaults standardUserDefaults]objectForKey:@"strkey"];
NSlog(@"string is-%@",str);https://stackoverflow.com/questions/18643983
复制相似问题