【发布时间】:2017-02-22 09:03:06
【问题描述】:
我必须计算所选文件(图像、视频)的校验和
在我的代码中,图像计算效果很好,但视频计算根本不起作用。
我正在使用 CryptoSwift
这是我所做的代码
import CryptoSwift
class MD5Calculator {
static func imageChecksum(imageArray: [UIImage], onCalculated: @escaping ([String]) -> Void){
DispatchQueue.global(qos: .userInitiated).async {
var array: [String] = []
for chosenImage in imageArray {
if let jpegData = UIImageJPEGRepresentation(chosenImage, 80) {
let checksum = jpegData.md5()
let chsum = checksum.toHexString()
array.append(chsum)
}
}
DispatchQueue.main.async {
onCalculated(array)
}
}
}
static func videoChecksum(videoURLs:[NSURL], onCalculated: @escaping ([String]) -> Void) {
DispatchQueue.global(qos: .userInitiated).async {
var array: [String] = []
for url in videoURLs {
if let videoData = Data(contentsOf: url as URL, options: Data.ReadingOptions) {
let checksum = videoData.md5()
let chsum = checksum.toHexString()
array.append(chsum)
}
}
DispatchQueue.main.async {
onCalculated(array)
}
}
}
}
在 videoChecksum 中我无法获取数据我在行中有语法错误
if let videoData = Data(contentsOf: url as URL, options: Data.ReadingOptions)
错误是:
Cannot convert value of type 'Data.ReadingOptions.Type' (aka 'NSData.ReadingOptions.Type') to expected argument type 'Data.ReadingOptions' (aka 'NSData.ReadingOptions')
这是数据类构造函数
public init(contentsOf url: URL, options: Data.ReadingOptions = default) throws
我的问题是
1.如何获取视频文件的数据
2。如果有另一种获取数据和计算校验和的方法,请建议我
3.如果您知道什么语法错误,请告诉我如何修复它。
【问题讨论】:
标签: ios objective-c swift swift3