iOS - 使用文本文件捆绑应用程序

时间:2012-11-19 21:07:05

标签: ios cocoa-touch

我有一个.json文件,我希望将其作为资源与我的应用程序捆绑在一起。我已阅读File System Programming Guide,其中说您应将支持文件放在<Application_Home>/Library/Application Support中。那么在构建我的应用程序之前如何将我的.json文件放在这个目录中呢?

如何在运行时引用该文件?

2 个答案:

答案 0 :(得分:5)

如果您的文件始终是只读的(仅作为应用更新的一部分更新),则将该文件添加到项目中应用的资源中。然后你只需从应用程序包中读取文件:

// assume a filename of file.txt. Update as needed
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"txt"];

如果您需要在应用程序中提供初始文件但在运行时进行更新,则需要像上面一样打包文件,但是第一次运行应用程序时,您需要将文件复制到另一个可写的位置。应用程序的沙箱。

// Get the Application Support directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *appSupportDirectory = [paths objectAtIndex:0];

// Create this path in the app sandbox (it doesn't exist by default)
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createDirectoryAtPath:appSupportDirectory withIntermediateDirectories:YES attributes:nil error:nil];

// Copy the file from the app bundle to the application support directory
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"txt"];
NSString *newPath = [appSupportDirectory stringByAppendingPathComponent:[filePath lastPathComponent]];
[fileManager copyItemAtPath:filePath toPath:newPath error:nil];

答案 1 :(得分:0)

这里有一个很好的解释http://www.cocoawithlove.com/2010/05/finding-or-creating-application-support.html

需要在运行时创建目录,并从主包中移动文件,然后您可以使用链接中描述的方法访问它们。