簡體   English   中英

案例切換中的Swift 3.0 UnsafeMutableRawPointer

[英]Swift 3.0 UnsafeMutableRawPointer in Case Switch

以下適用於Swift 3.0:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM