在我的应用程序中,我有一个简单的ASCII文件,它存储了一些配置信息以及它使用和更改的其他小信息。我想用应用程序将该文件复制到iPhone。
1)请告诉我应该把这个文件(config.txt)放在xcode中。我应该把它放在资源下吗?
2)我将如何在iPhone中访问它?我可以使用
吗?str = [NSString stringWithContentsOfFile:@"config.txt"]
还是我必须使用更完整的路径;如果有,那是什么?
答案 0 :(得分:9)
如果应用程序可以更改用户设置,则应使用NSUserDefaults
来存储用户设置。
文档为here。
设置存储为plist文件,因此您可以存储NSDictionary
个实例,NSArray
个实例等。
如果您想使用某些设置预先填充NSUserDefaults
,可以使用以下代码执行此操作:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"defaults" ofType:@"plist"];
NSDictionary *defaultsDict = [NSDictionary dictionaryWithContentsOfFile:filePath];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict];
您需要使用默认设置在Resources文件夹中放置defaults.plist文件,并使用上面的代码。我从AppDelegate的+(void)initialize
方法运行该代码,但您可以选择其他地方来调用它。
答案 1 :(得分:1)
你可以把它放在参考资料中,是的。要获取该文件,您只需使用:
[[NSBundle mainBundle] pathForResource:@"config" ofType:@"txt" inDirectory:@""]]
但是,我建议NSUserDefaults
为您的设置吗?它会为你在阅读和写作方面省去很多麻烦。
答案 2 :(得分:1)
如果您想要检索 NSUserDefaults ,您可以执行以下操作:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting a NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
// getting a NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];
// getting a Float
float myFloat = [prefs floatForKey:@"floatKey"];
答案 3 :(得分:0)
如果nsuserdefaults无法满足您的需求,您可以将配置信息存储在Documents目录中的文件中。如果启动时文件不存在,请阅读参考资料中的版本。