2016-11-12 7 views
0

Я преобразовал в Swift 3 и получать сообщение об ошибкеURLSession Преобразование в Swift 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

ответ

1

Вы уже получаете объект данных, и вы хотите добавить данные, то почему вы делаете все эти вещи

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data){ 
    responseData?.append(data) 
} 

Это будет работать нормально.

Для справки, смотрите на https://github.com/ankitthakur/SwiftNetwork/tree/master/Sources/Shared

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 

    } 
} 

Я также обучение быстры, просто дайте мне знать любой, кто сделает этот ответ лучше.

Смежные вопросы