之前我读过有相同问题的帖子,但我的问题仍然存在。我的应用程序首先需要读取plist文件以获取一些参数,并且当加载到设备上时,无法读取默认设置plist(在模拟器上工作)。一个解决方案应该是将plist复制到文档目录中,但只有这个?设备无法读取plist中设置的用户默认值吗?如果我将它复制到docs目录,如果有其他位置,设备是否能够为plist关联键?我需要在执行任何函数之前读取用户默认值。谢谢。
-(void)loadSettings
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
self.userID = [[NSUserDefaults standardUserDefaults] stringForKey:@"userID"];
self.nom2 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t2"];
self.nom3 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t3"];
self.nom4 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t4"];
self.currentGlobal = [[NSUserDefaults standardUserDefaults] stringForKey:@"versionApp"];
NSLog(@"Version App = %@", currentGlobal);
self.colorTab = [[NSUserDefaults standardUserDefaults] stringForKey:@"color"];
firstBoot = [[NSUserDefaults standardUserDefaults] boolForKey:@"firstBoot"];
[defaults synchronize];
}
答案 0 :(得分:3)
听起来您只想在用户默认值中设置一些初始值,以便您的应用可以读取它们。如果是这种情况,那么您只需要使用registerDefaults:
NSUserDefaults
方法}。例如:
[[NSUserDefaults standardUserDefaults] registerDefaults:
[NSDictionary dictionaryWithObject: [NSNumber numberWithBool:YES]
forKey: @"firstBoot"]];
NSUserDefaults
的美妙之处在于你永远不会搞乱pList的东西或iOS文件系统。
答案 1 :(得分:1)
您是否看过使用NSUserDefaults?
它会自动执行您所描述的内容,而您无需管理文件。这是一个简单的API,您可以读取和写入设置,iOS负责为您存储。
答案 2 :(得分:1)
您无需将standardUserDefaults的plist复制到文档目录。您应该让iOS自己创建此文件,而不是将其包含在您的应用中。如果您需要设置默认值,那么您应该在standardUserDefaults实例上使用registerDefaults:方法,方法是传入一个键值对字典。