Если у меня есть метод вроде:
func someMethod(contextPtr: UnsafeMutablePointer<Void>)
как мне получить объект из contextPtr
?
func someMethod(contextPtr: UnsafeMutablePointer<Void>){
let object:MyObject = contextPtr.memory
}
дает:
'Void' не конвертируется в 'MyObject'
Какой секретный соус
Подробнее:
То, что я на самом деле делаю здесь, - это создание глобальной функции обратного вызова для SCNetworkReachability
:
func callback(reachability:SCNetworkReachability, flags: SCNetworkReachabilityFlags, info: UnsafeMutablePointer<Void>) {
let r:Reachability = info.memory
}
а затем добавив обратный вызов следующим образом:
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)