NSCocoaErrorDomain Code=256 文件无法打开

14

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

NSKeyedArchiver* archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:dataForWrite];
[archiver encodeObject:dictVer forKey:@"cityVersionDict"];
[archiver finishEncoding];
BOOL flag = [dataForWrite writeToFile:path atomically:YES];
我想在Swift4.0的新项目中通过以下代码读取这个文件:


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

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

然后捕获错误: Error Domain=NSCocoaErrorDomain Code=256 "无法打开文件“cityVersionDict.archiver”" UserInfo={NSURL=/Users/sam/Library/Developer/CoreSimulator/Devices/51CD0088-EE62-4ED0-8660-4C6486BC7823/data/Containers/Data/Application/5740ADE1-4930-4968-B86F-7E2F5F99F5F8/Library/Caches/cityVersionDict.archiver}

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

1个回答

50

我发现问题出在URL上。

URL必须使用init(fileURLWithPath: String)创建,

然后Data(contentsOf: URL)才能正常工作。


6
LOL!刚刚花了一个小时尝试更改文件权限。谢谢这个经历 :D 归入“我永远不会忘记的事情”之列。:D - Fogmeister
2
但是我得到的媒体url是“assets-library://asset/asset.MP4?id=F65960BD-9AD8-4BBC-8C17-12345F10EB74E&ext=MP4”。我认为这是问题的原因,但无法弄清楚为什么?有任何帮助吗? - Mansuu....
@Mansuu.... 你解决过那个问题吗 :D ? - flyingBear

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接