2016-12-01 10 views
1

続い作品:しかしスウィフト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 
    } 
} 
関連する問題