我正在尝试读取 Documents 目录中模拟器中的所有文件,但出现 Cocoa 错误 260。当我登录 [self applicationDocumentsDirectory] 时,它​​显示/var/root/Documents。有谁知道为什么会发生这种情况?它仅在我从命令行运行时发生。在模拟器本身中运行时,代码正确输出模拟器的正确文档文件夹。

更新我现在看到“file://localhost/Users/MyUserName/Documents”的路径。太奇怪了...

- (NSString *)applicationDocumentsDirectory
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return basePath;
}

最佳答案

修复方法是 chmod -R 777 "/Users/MyUserName/Documents"然后将我的方法更改为:

- (NSString *)applicationDocumentsDirectory
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

    if (![[NSFileManager defaultManager] createDirectoryAtPath:basePath withIntermediateDirectories:YES attributes:nil error:NULL])
    {
        NSLog(@"Error: Create documents folder failed %@", basePath);
    }

    return basePath;
}

关于iphone - iOS 模拟器认为文档目录是/var/root/Documents,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6656425/

10-12 01:23