0

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

我有 xcode 4.3.2,并运行一个应用程序,在其中我通过以下代码获取默认文档目录。

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。每次怎么不一样?

非常感谢您的帮助。

4

2 回答 2

2

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

于 2012-11-16T06:49:39.360 回答
0

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

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

所以避免这个问题的解决办法是保存/Documents目录后面的路径,然后使用 stringByAppendingPathComponent:

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

于 2012-11-16T08:08:46.093 回答