Próbuję sprawdzić, czy użytkownik ma połączenie z Internetem, a część procesu obejmuje wywołanie withUnsafePointer
. W Swift 1.x, udało mi się użyć:withUnsafePointer w Swift 2
var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(&zeroAddress){
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0)).takeRetainedValue()
}
Ale teraz z Swift 2, dostaję błąd mówiąc
nie może powoływać „withUnsafePointer” z listy argumentów typu " (inout sockaddr_in (_) -> _)”
Spojrzałem wykorzystanie Xcode, która brzmi:
Tak próbowałem przy użyciu
withUnsafePointer(&zeroAddress) {(pointer: UnsafePointer<sockaddr_in>) -> sockaddr_in in
SCNetworkReachabilityCreateWithAddress(nil, pointer).takeRetainedValue()
}
jak również
withUnsafePointer(&zeroAddress) {(pointer: UnsafePointer<sockaddr_in>) -> AnyObject in
SCNetworkReachabilityCreateWithAddress(nil, pointer).takeRetainedValue()
}
I obaj dać błąd kompilacji cannot invoke...
. Jaki jest poprawny sposób użycia withUnsafePointer
w Swift 2.x?
Więc teraz dużo lepiej .. – Berik