我不确定这是否是预期的行为。
我有xcode 4.3.2,并运行一个应用程序,在其中我通过以下代码获取默认的Document目录。
NSArray *dirPaths;
NSString *docsDirectory;
NSString *databasePath;
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDirectory = [dirPaths objectAtIndex:0];
databasePath = [[NSString alloc] initWithString: [docsDirectory stringByAppendingPathComponent: DBNAME]];
const char *dbpath = [databasePath UTF8String];
NSFileManager *filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath:databasePath] == NO) {
NSLog (@" GETDBPATHNAME: database file does not exist");
}
else {
NSLog (@" GETDBPATHNAME: Database File EXISTS");
}
用例: 1)我每次在xcode中运行应用程序的路径是相同的。 2)重启设备,在xcode中重新运行应用程序,路径也一样。 3)但是,当我删除应用程序,并重新运行路径差异。怎么可能?
路径是什么样的:
/var/mobile/Applications/xxxxxxx-xxx-xxxx-xxx-xxxxxxxxxxx/Documents/
值xxxxxxx-xxx-xxxx-xxx-xxxxxxxxxxx声称是电话UUID。每次都有什么不同?
非常感谢您的帮助。
答案 0 :(得分:2)
每个应用程序都有一个UNIQUE文档目录。 删除APP时,文档目录也会被删除。然后在安装相同的应用程序时。 iOS为APP生成另一个目录。它从不使用以前的目录名称。
答案 1 :(得分:0)
每当您删除并重新安装应用程序时,此路径都会更改。
xxxxxxx-xxx-xxxx-xxx-xxxxxxxxxxx不是手机UUID,否则此路径对于每个应用程序都是相同的。此外,当您在应用商店中更新应用程序时,此路径也会更改。
因此,避免此问题的解决方案是在/ Documents Directory之后保存路径并使用
stringByAppendingPathComponent:
在文档目录的路径之后获取完整路径。通过这种方式,您不会对资源的路径有任何问题。