2016-12-01 117 views
1

繼雨燕3.0的作品:雨燕3.0 UnsafeMutableRawPointer案例開關

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

然而,因爲我有很多條件,如果我使用交換機/案例是這樣的:

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

我得到一個錯誤關於UnsafeMutableRawPointer不能轉換爲整數。

聲明:

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

你有沒有考慮過帳實際的錯誤? – Alexander

回答

2

當展開context代碼編譯罰款:

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 
    } 
}