NSCocoaErrorDomain Code=256 文件无法打开
NSCocoaErrorDomain Code=256 File couldn’t be opened
该文件是在 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 "The file “cityVersionDict.archiver” couldn’t be opened." 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中,这个文件可以正常读取。我已经仔细检查了路径是否正确。但仍然捕获错误。请帮忙,谢谢
我发现问题是关于 URL
。
URL
必须使用init(fileURLWithPath: String)
来创建,
然后 Data(contentsOf: URL)
可以正常工作。
该文件是在 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 "The file “cityVersionDict.archiver” couldn’t be opened." 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中,这个文件可以正常读取。我已经仔细检查了路径是否正确。但仍然捕获错误。请帮忙,谢谢
我发现问题是关于 URL
。
URL
必须使用init(fileURLWithPath: String)
来创建,
然后 Data(contentsOf: URL)
可以正常工作。