在 Xcode 6.3.2 中访问项目包中的 XML 文件

Access XML file in project bundle in Xcode 6.3.2

我正在尝试在 Xcode 中加载 XML 文件。该文件应该在应用程序启动时加载,并使用要保存的数据进行更新以备将来使用。 我把"Supporting Files"文件夹里的文件拖到Xcode里,在项目子目录下可以看到文件的副本: /Users/Alex/Documents/ObjectiveC projects/myProject/myProject

我用来访问文件的代码是:

// Search for files in bundle

_path = [[NSBundle mainBundle] pathForResource:@"profile" ofType:@"xml"];

NSLog(@"myFile path: %@", _path);

但是,当我 运行 应用程序 _path 被设置到其他目录时:

myFile path: /Users/Alex/Library/Developer/CoreSimulator/Devices
/8F2AD2A7-4875-47C9-9AB8-852339AF31A0/data/Containers/Bundle/Application
/7D9A4A78-A7CB-40E5-8CC7-6B8EE2143D2E/myProject.app/profile.xml

此外,我似乎无法写入此文件。如果我重新启动应用程序,内容是相同的。无论我 运行 模拟器中的应用程序还是设备中的应用程序,都会发生这种情况。 当我第一次 运行 up 时,我似乎正在访问捆绑包中兑现的某个版本的文件。

原来捆绑包中的文件是只读的。这在其他帖子中讨论过:File write with [NSBundle mainBundle] fails

我在应用程序首次运行时初始化时通过将文件复制到新文件获得了我需要的内容,然后将新文件用作 read/write 文件。