Ios WatchKit";在展开可选值“时意外发现nil”;当访问IBOutlet时,请浏览实际设备
我瞥了一眼,看到了一些Ios WatchKit";在展开可选值“时意外发现nil”;当访问IBOutlet时,请浏览实际设备,ios,swift,watchkit,Ios,Swift,Watchkit,我瞥了一眼,看到了一些wkelabels。根据某些条件,我在override func willActivate()中对它们使用setHidden() class GlanceController: WKInterfaceController { @IBOutlet weak var lName: WKInterfaceLabel! ... override func willActivate() { // This method is called when watch vi
wkelabel
s。根据某些条件,我在override func willActivate()
中对它们使用setHidden()
class GlanceController: WKInterfaceController {
@IBOutlet weak var lName: WKInterfaceLabel!
...
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
if(conditions) {
lName.setHidden(false)
} else {
lName.setHidden(true)
}
}
}
这在模拟器中工作,但在实际观察中,我得到了致命错误:在lName.setHidden()
处展开可选值时意外发现了nil
以前有人看到过吗?由于“lName”被声明为显式展开可选,因此按照以下方式访问变量更安全-
if let validLName = lName {
if(conditions) {
validLName.setHidden(false)
} else {
validLName.setHidden(true)
}
}
}
至少对于当前版本的WatchKit
,您似乎不允许在Glance
中使用.setHidden()
我重新设计了我的用户界面,完全使用一个标签,它的工作。很明显,它看起来不像我想的那么好
我理解限制,但真的希望有更多的文档来避免麻烦。就像我在花时间设计UI之后才发现我无法滚动查看Glance
。请从日志中发布实际错误,以及它所涉及的代码片段。确实,您的更改将防止错误发生,但代码不会完全执行。我想我找到了答案(见我的另一个回答)