NSData 在 9.0 版中给了我一个错误



下面是我用 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")

相关内容

  • 没有找到相关文章

最新更新