删除后,默认文档目录更改,在xcode中重新运行应用程序。

时间:2012-11-16 06:42:15

标签: iphone objective-c ios5 ios4

我不确定这是否是预期的行为。

我有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。每次都有什么不同?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

每个应用程序都有一个UNIQUE文档目录。 删除APP时,文档目录也会被删除。然后在安装相同的应用程序时。 iOS为APP生成另一个目录。它从不使用以前的目录名称。

答案 1 :(得分:0)

每当您删除并重新安装应用程序时,此路径都会更改。

xxxxxxx-xxx-xxxx-xxx-xxxxxxxxxxx不是手机UUID,否则此路径对于每个应用程序都是相同的。此外,当您在应用商店中更新应用程序时,此路径也会更改。

因此,避免此问题的解决方案是在/ Documents Directory之后保存路径并使用 stringByAppendingPathComponent:

在文档目录的路径之后获取完整路径。通过这种方式,您不会对资源的路径有任何问题。