2016-12-01 3 views
1

Folgende Arbeiten in Swift 3.0:Swift 3.0 UnsafeMutableRawPointer in der Rechtssache Schalter

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) 
    { 
     if context == &MyContext1 { 
     ......... 
     } 
     else if context == &MyContext2 { 
     ......... 
     } 
} 

Da ich aber viele Bedingungen haben, wenn ich Schalter verwenden/Fall wie folgt aus:

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) 
    { 
     switch context { 
      case &MyContext1 : 
       ........ 
      case &MyContext2 : 
       ........ 
     } 
    } 

Ich erhalte eine Fehlermeldung in Bezug auf UnsafeMutableRawPointer nicht in eine Ganzzahl konvertieren können. Erklärungen

:

private var MyContext1 = 0 
private var MyContext2 = 0 
+1

Haben Sie darüber nachgedacht, den tatsächlichen Fehler zu veröffentlichen? – Alexander

Antwort

2

Wenn Abwickeln context der Code kompiliert fein:

private var MyContext1 = 0 
private var MyContext2 = 0 

func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { 
    switch context! { 
    case &MyContext1 : break 
     // 
    case &MyContext2 : break 
    // 
    default: break 
    } 
}