2016-11-12 29 views
0

我已經轉換到夫特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) 
    } } 

什麼我需要去適應,使其工作?

+1

註釋掉整個方法,重新鍵入,並使用代碼完成或查找新語法的文件中。 – vadian

回答

0

當您嘗試編寫方法,它是給你暗示

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 

    } 
} 

我也學習迅速,只是讓我知道任何一個誰做出這樣的回答更好。