URLSession转换到夫特3
问题描述:
我已经转换到夫特3和接收错误消息URLSession转换到夫特3
“无法类型的值(UnsafeRawPointer,NSRange, UnsafeMutablePointer)转换 - >()至(UnsafeBufferPointer, 数据。 index,inout Bool) - >无效。
我的代码:
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask,
didReceive data: Data) {
data.enumerateBytes{[weak self]
(pointer: UnsafeRawPointer,
range: NSRange,
stop: UnsafeMutablePointer<ObjCBool>) in
let newData = Data(bytes: UnsafePointer<UInt8>(pointer), count: range.length)
self!.mutableData.append(newData)
} }
什么我需要去适应,使其工作?
答
你已经得到的数据对象,并要附加数据,那么你为什么这样做所有这些事情
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data){
responseData?.append(data)
}
这将正常工作。
作为参考,看看https://github.com/ankitthakur/SwiftNetwork/tree/master/Sources/Shared
答
当您尝试编写方法,它是给你暗示
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask,
didReceive data: Data) {
data.enumerateBytes { (<#UnsafeBufferPointer<UInt8>#>, <#Data.Index#>, <#inout Bool#>) in
<#code#>
}
}
参数与< ##>未来你只需要为那些所有,所以你会在这些变量中获得的价值给予局部变量名。
只要写象下面这样:
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask,
didReceive data: Data) {
data.enumerateBytes { (buffer , index, boolvalue) in
}
}
我也学习迅速,只是让我知道任何一个谁做出这样的回答更好。
注释掉整个方法,重新键入,并使用代码完成或查找新语法的文件中。 – vadian