【发布时间】:2014-10-10 18:24:54
【问题描述】:
我的应用程序的Documents 文件夹中有一个文件。当应用程序终止时,我将文件的 URL 保存在 AppDelegate 的 applicationWillTerminate 方法中:
// archiver init code
[archiver encodeObject:file.URL forKey:kFileURL];
// finish encoding and write data to file system
但在下次启动应用程序时尝试恢复文件时,文件管理器无法找到该文件:调用后
NSURL *fileURL = [unarchiver decodeObjectForKey:kFileURL];
NSString *filePath = fileURL.path;
方法
[[NSFileManager defaultManager] fileExists:filePath];
返回NO。
我试图找出原因,发现Documents 文件夹的路径会随着每次应用启动而改变。改变的部分是中间的十六进制文件夹。这里有两个例子:
/private/var/mobile/Applications/04083A4A-87AC-4E3C-8BA1-F002B97AE304/Documents/...
/private/var/mobile/Applications/65D136BA-42C3-887A-B947-7FE396978153/Documents/...
我一直认为十六进制部分是每个应用程序独有的某种 ID。但随着它的变化:这个数字到底是多少? 以及如何在终止并重新启动我的应用程序后重新定位我的文件?
【问题讨论】:
标签: ios objective-c nsfilemanager