Xcode 在构建时更改应用程序文件夹的位置 [英] Xcode changes location of applications folder on build

查看:25
本文介绍了Xcode 在构建时更改应用程序文件夹的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将 .mp3 文件存储在我的 iOS 应用程序文档目录中并保存到 Core Data 的路径.当我重建应用程序时,Xcode 似乎将应用程序数据移动到不同的目录,从而使存储的路径无效.为什么会发生这种情况以及保存文件路径的最佳做法是什么?

I am storing an .mp3 in my iOS apps documents directory and saving the path to Core Data. When I rebuild the app Xcode seems to move the application data to a different directory thus making the stored path invalid. Why is this happening and what are the best practices around saving file paths?

我使用的是 Xcode 6.2,过去曾成功检索过文件.

I am using Xcode 6.2 and have been successful retrieving the file in the past.

下载后文件的位置:

in ~/Library/Developer/CoreSimulator/Devices/82D1931C-590D-45A2-AB9B-8D1D4F2530C5/data/Containers/Data/Application/
$ find . -iname p612.mp3
./1C070BF8-0E2E-4EAC-99B6-C56E48675E6E/Documents/adf07cf85254e8f28f942f2d6fa704ae/p612.mp3

重建后的文件位置:

in ~/Library/Developer/CoreSimulator/Devices/82D1931C-590D-45A2-AB9B-8D1D4F2530C5/data/Containers/Data/Application/
$ find . -iname p612.mp3
./E6C7D0AF-E61C-4BDD-AF4B-68C445E2BB0D/Documents/adf07cf85254e8f28f942f2d6fa704ae/p612.mp3

推荐答案

iOS 8.0 起,每次重新构建代码时,应用程序文件夹的名称(其中包含您的文档和库目录)变化.这是预期的行为.

Since iOS 8.0, every time you rebuild your code, the name of the application folder (which contains your documents and library directories) changes. This is the intended behaviour.

所以如果你想存储一个路径,你应该只存储文件名,然后将它与文档目录的位置结合起来.这样,它将始终指向正确的位置.

So if you want to store a path, you should only store the filename, and then combine it with the location of the documents directory on the fly. This way, it will always point to the correct location.

文档目录的内容将保留,即使它所在的文件夹的名称会随着构建而改变.

The contents of the documents directory will persist even though the name of the folder in which it resides will change from build to build.

// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}

请参阅:技术说明 TN2406.

这篇关于Xcode 在构建时更改应用程序文件夹的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆