iPhone应用程序:我在哪里放置配置文件?

时间:2009-04-25 17:51:14

标签: iphone xcode filepath

在我的应用程序中,我有一个简单的ASCII文件,它存储了一些配置信息以及它使用和更改的其他小信息。我想用应用程序将该文件复制到iPhone。

1)请告诉我应该把这个文件(config.txt)放在xcode中。我应该把它放在资源下吗?

2)我将如何在iPhone中访问它?我可以使用

吗?
str = [NSString stringWithContentsOfFile:@"config.txt"] 

还是我必须使用更完整的路径;如果有,那是什么?

4 个答案:

答案 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目录中的文件中。如果启动时文件不存在,请阅读参考资料中的版本。