NSCocoaErrorDomain Code = 256无法打开文件

时间:2018-03-02 09:32:02

标签: swift4 nsdata nskeyedarchiver

该文件是在Objective-C中的旧项目中创建的。

NSKeyedArchiver* archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:dataForWrite];
[archiver encodeObject:dictVer forKey:@"cityVersionDict"];
[archiver finishEncoding];
BOOL flag = [dataForWrite writeToFile:path atomically:YES];

我想通过以下代码在Swift4.0的新项目中读取此文件:

do {
    let data = try Data.init(contentsOf: path)
} catch {
    print(error)
}

然后发现错误: 错误域= NSCocoaErrorDomain代码= 256"无法打开文件“cityVersionDict.archiver”。"的UserInfo = {NSURL = /用户/ SAM /库/开发商/ CoreSimulator /设备/ 51CD0088-EE62-4ED0-8660-4C6486BC7823 /数据/容器/数据/应用/ 5740ADE1-4930-4968-B86F-7E2F5F99F5F8 /库/缓存/ cityVersionDict.archiver}

在Objective-C中,这个文件可以正常读取。我已经仔细检查了路径是否正确。但仍然遇到错误。请帮助,谢谢

1 个答案:

答案 0 :(得分:16)

我发现问题与URL有关。 URL必须使用init。(fileURLWithPath:String)创建,然后Data.init(contentsOf:URL)可以正常工作。