URLSession 转换为 Swift 3
URLSession Conversion to Swift 3
我已转换为 Swift 3 并收到错误消息
'Cannot convert value of type (UnsafeRawPointer, NSRange,
UnsafeMutablePointer)->() to (UnsafeBufferPointer,
Data.index, inout Bool)-> Void.
我的代码:
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) {
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
}
}
我也在学习swift,请让我知道任何使这个答案更好的人。
你已经在获取数据对象并且你想追加数据,那么你为什么要做所有这些事情
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data){
responseData?.append(data)
}
这会很好用。
参考https://github.com/ankitthakur/SwiftNetwork/tree/master/Sources/Shared
我已转换为 Swift 3 并收到错误消息
'Cannot convert value of type (UnsafeRawPointer, NSRange, UnsafeMutablePointer)->() to (UnsafeBufferPointer, Data.index, inout Bool)-> Void.
我的代码:
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) {
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
}
}
我也在学习swift,请让我知道任何使这个答案更好的人。
你已经在获取数据对象并且你想追加数据,那么你为什么要做所有这些事情
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data){
responseData?.append(data)
}
这会很好用。
参考https://github.com/ankitthakur/SwiftNetwork/tree/master/Sources/Shared