Wenn ich eine Methode, wie haben:Swift 2 - UnsafeMutablePointer <Void> zum Objekt
func someMethod(contextPtr: UnsafeMutablePointer<Void>)
wie bekomme ich das Objekt aus dem contextPtr
?
func someMethod(contextPtr: UnsafeMutablePointer<Void>){
let object:MyObject = contextPtr.memory
}
gibt:
'Void' ist nicht konvertierbar 'MyObject'
Was ist das Geheimnis Sauce ist
Mehr Detail:
W
func callback(reachability:SCNetworkReachability, flags: SCNetworkReachabilityFlags, info: UnsafeMutablePointer<Void>) {
let r:Reachability = info.memory
}
und dann den Rückruf Zugabe wie folgt:: Ich Hut bin eigentlich hier tun, ist eine globale Callback-Funktion für SCNetworkReachability
Einrichtung
var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)
var s = self
withUnsafeMutablePointer(&s) {
context.info = UnsafeMutablePointer($0)
}
SCNetworkReachabilitySetCallback(reachability, callback, &context)
Was passieren Sie, wenn du * rufst * die Methode an? Und warum wird es als ungültiger Zeiger übergeben? –
Ich habe versucht, den Code ein wenig zu vereinfachen - ich habe einige weitere Details hinzugefügt –