【问题标题】:Swift 3.0 UnsafeMutableRawPointer in Case SwitchSwift 3.0 UnsafeMutableRawPointer in Case Switch
【发布时间】:2016-12-01 18:07:09
【问题描述】:

Swift 3.0 中的以下作品:

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

但是,由于我有很多条件,如果我像这样使用 switch/case:

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

【问题讨论】:

  • 您是否考虑过发布实际错误?

标签: ios xcode swift3 key-value-observing unsafe-pointers


【解决方案1】:

当解开 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
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2015-01-23
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    相关资源
    最近更新 更多