0

我已经开发了我的第一个 iOS 应用程序,但我面临一个相对微不足道的问题。该应用程序使用存储在本地 json 文件中的非常基本的数据。现在,我已将“default.json”文件放在 Xcode 和 iPhone 6.1 Simulator 可以访问的本地目录中。

我的简单应用程序运行起来就像一个魅力。

我可以使用以下声明轻松访问 JSON 文件:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *jsonPath = [documentsDirectory stringByAppendingPathComponent:@"default.json"];
NSString *jsonString = [[NSString alloc] initWithContentsOfFile:jsonPath encoding:NSUTF8StringEncoding error:NULL];

json文件的本地路径为: /Users/kamil/Library/Application Support/iPhone Simulator/6.1/Applications/CE00BA77-1CAD-4336-8A83-C95341CDF4AA/Documents/default.json

现在,当我尝试在 iPhone 上使用我的应用程序时,我的应用程序崩溃了。对调试器日志的快速检查表明,在 iPhone 上访问文件可能存在问题。

如何在 iPhone 上本地运行的应用程序中存储和访问我的 defaul.json 文件?

4

2 回答 2

1

您可以将文件放在应用程序包中(确保它在 XCode 中,在项目的 Build Phases 选项卡上的 Copy Bundle Resources 部分下),然后直接访问该文件,无需路径,只需default.json. 但是,应用程序包中的任何文件都是只读的。

或者,如果您希望能够更新文件,您的应用程序通常应在首次启动时将文件从应用程序包复制到文档文件夹,然后从那时起访问文档文件夹中的副本。(提示:如果文档文件夹中不存在该文件,请从应用程序包中复制它。)

分发应用程序时,仅分发应用程序包中包含的文件。从 XCode 在设备上运行时,只有应用程序包被复制到设备,所有非本地化文件都在应用程序包的根文件夹中。

于 2013-08-22T16:38:53.950 回答
0

如果@Marcus Adams 提到的解决方案对您不起作用。尝试删除手机中的应用程序并重新安装...

于 2013-08-22T17:34:45.577 回答