我想将一些变量的内容存储在一个文件中。用户和应用程序应更改该值。如果用户无法读取此文件的内容,那将会很棒。启动时,应用程序读取文件并使用内容初始化一些(全局?)变量。
该文件应包含一些值,如服务器URL等。这可能会改变,但我只想管理首选项文件而不是更新源代码。例如,在更新时,只会交换首选项文件。
我该如何管理?
我认为NSUserDefaults不适用于此类问题。我应该使用plist还是普通的txt文件?
如何访问文件内容?
干杯
答案 0 :(得分:1)
听起来像NSUserDefaults就是你所需要的。它将允许您存储URL(作为字符串)和其他基本类型的变量。
为什么你认为NSUserDefaults不是正确的解决方案?
试一试!它易于使用且可靠。
答案 1 :(得分:0)
使用plist。您可以使用-[NSDictionary initWithContentsOfFile:]
加载它(您可以使用-[NSDictionary writeToFile:atomically:]
轻松地将字典保存到plist,但听起来并不像您需要这样做。)
答案 2 :(得分:0)
所以我将使用的解决方案是加载一个plist文件作为我的NSUserDefaults的默认值:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];
NSDictionary *settingsDict = [NSDictionary dictionaryWithContentsOfFile:filePath];
[[NSUserDefaults standardUserDefaults] registerDefaults:settingsDict];
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
NSString *serverURL = [settings stringForKey:@"ServerURL"];
NSLog(@"%@", serverURL);
取自iPhone App : Where do I put a config file?
所以我将同时使用plist和NSUserDefaults。设置我将在main.m中定义为全局变量。一个问题仍然存在:
如何区分用户默认值和系统默认值?