Swift 3 - Ошибка миграции Не удается преобразовать значение типа 'sockaddr'
Я пытаюсь преобразовать библиотеку OSC из swift 2 в swift 3. У меня осталось только две ошибки, которые я не могу решить. Ошибки в коде ниже.
Ошибки даны UnsafePointer
ошибка 1:
Невозможно преобразовать значение типа 'sockaddr' в ожидаемый тип аргумента 'UnsafePointer!'
ошибка 2:
'init' недоступен: используйте 'withMemoryRebound(to:acity:_)', чтобы временно просмотреть память как другой тип, совместимый с макетом.
Как я могу исправить эти две ошибки и конвертировать их в swift 3?
if (sa_family_ == UInt8(AF_INET)) {
withUnsafePointer(to: &addr4_) { ptr -> Void in
//let addrptr = UnsafePointer<sockaddr>(ptr)
let addrptr = UnsafePointer(ptr).withMemoryRebound(to: sockaddr.self, capacity: 1) {
$0.pointee
}
sendto(sock_, sendbuf_, sendbuf_.count, 0,
addrptr, socklen_t(MemoryLayout<sockaddr_in>.size)) //Cannot convert value of type 'sockaddr' to expected argument type 'UnsafePointer<sockaddr>!'
}
} else {
withUnsafePointer(to: &addr6_) { ptr -> Void in
let addrptr = UnsafePointer<sockaddr>(ptr) // 'init' is unavailable: use 'withMemoryRebound(to:capacity:_)' to temporarily view memory as another layout-compatible type.
sendto(sock_, sendbuf_, sendbuf_.count, 0,
addrptr, socklen_t(MemoryLayout<sockaddr_in6>.size))
}
}