下面是我用 swift 编写的函数,这段代码在 10.0 版本的 iPhone 中运行良好,但在 9.0 版本中给出一个错误,说
CFURLCopyResourcePropertyForKey失败,因为它传递了一个URL 没有方案 加载失败:文件 无法打开"录制2017-03-06_11.08.53000.mp3"。
部分文件网址将具有
/private/var/mobile/Containers/Data/Application/B8F9055D-D816-4E27-BA2A-B13F0EE97709/tmp/Recording2017-03-06_11.08.53000.mp3
这是我的以下函数-:
//function
func putPartUplaod(partFileURL:URL , partFileNumber:Int)
{
var partfileData:Data?
var md5hash:Any?
var sha256hash:Any?
// var error: NSError?
let uri:URL = NSURL(fileURLWithPath: partFileURL.absoluteString) as URL
//Get MD5 Digest
do{
print(partFileURL)
partfileData = try NSData(contentsOf: uri, options: NSData.ReadingOptions.dataReadingMapped) as Data
print("hello" , partfileData);
md5hash = partfileData?.md5().base64EncodedString()
}catch let error as NSError {
print("Failed to load: (error.localizedDescription)")
}
}
您可以使用类似NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
您传入的字符串不是有效的 URL,它只是一个文件路径。要使其成为URL,您需要添加将file://
的方案。
/private/var/mobile/Containers/Data/Application/B8F9055D-D816-4E27-BA2A-B13F0EE97709/tmp/Recording2017-03-06_11.08.53000.mp3
是文件路径而不是URL。网址具有方案(或协议)。请参阅您的错误消息。创建您的网址
URL(fileURLWithPath:"/private/var/mobile/Containers/Data/Application/B8F9055D-D816-4E27-BA2A-B13F0EE97709/tmp/Recording2017-03-06_11.08.53000.mp3")