【问题标题】:NSCocoaErrorDomain Code=256 File couldn’t be openedNSCocoaErrorDomain Code=256 文件无法打开
【发布时间】:2018-08-10 12:01:27
【问题描述】:

该文件是在 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=/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中,这个文件可以正常读取。我已经仔细检查了路径是否正确。但仍然捕获错误。请帮忙,谢谢

【问题讨论】:

    标签: swift4 nsdata nskeyedarchiver


    【解决方案1】:

    我发现问题出在URL

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

    那么Data(contentsOf: URL)就可以正常工作了。

    【讨论】:

    • 哈哈!刚刚花了一个小时试图更改我的文件的权限。感谢 :D 归档在“我永远不会再忘记的事情”下。 :D
    • 但我将媒体网址设为“assets-library://asset/asset.MP4?id=F65960BD-9AD8-4BBC-8C17-12345F10EB74E&ext=MP4”。我认为这是问题所在,无法弄清楚为什么?有什么帮助吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2021-03-11
    相关资源
    最近更新 更多