value不是nil,但是在展开Optional值时意外地找到了nil

时间:2016-01-19 11:04:09

标签: ios objective-c swift watchkit

我正在尝试将一些数据从数组发送到另一个interfaceController。问题是我得到了

  

在解包可选值异常

时意外发现nil

即使数组不是零。事实上,我甚至可以使用

打印结果

打印(...)。

问题是我无法将此结果设置为标签而不会出现异常。

这是我用新的interfaceController和上下文数据笑的代码

@IBAction func lauchInterfaceClick() {

    presentControllerWithName("SecondInterface", context: ["hi","how are you"])

}

然后在SecondInterface中检索结果,如下所示

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    // Configure interface objects here.
    if context != nil{

        let somevalue = context as! [String]

        // here is where I getting the exception, in addition to Thread 1: EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP, subcode=0x0)
        self.showWat.setText(String(somevalue[0]))

        // I have also tried this
        // self.showWat.setText(somevalue[0])

    } 

请注意,另一方面,print(String(somevalue[0]))输出hi

1 个答案:

答案 0 :(得分:0)

我会使用exe b.'wincmd w'的实现:

let buf_id = filter(range(1,bufnr('$')), 'v:val =~ "THEPATTERN"'))

Swift Programming Language Reference中查看“可选链接作为强制解包的替代方法”部分。

或者在堆栈溢出处查看此answer