gpt4 book ai didi

ios - Swift WKInterfaceLabel IBOutlet 在启动时卡住 Watchkit 应用程序

转载 作者:行者123 更新时间:2023-11-30 14:19:27 27 4
gpt4 key购买 nike

我正在尝试制作一个 watch 应用程序的简单示例:标签和按钮。按下按钮,标签的文本就会改变。

@IBOutlet var myLabel: WKInterfaceLabel!
@IBOutlet var myButton: WKInterfaceButton!

当我在模拟器中运行应用程序时,以下代码会导致无限旋转的轮子,如屏幕截图所示:

@IBAction func sampleFunc() {
myLabel.setText("hello world")
myButton.setTitle("hermes")
}

enter image description here

记住。该应用程序永远无法加载。我从来没有看到按钮或标签。它只是停留在这个旋转的白色圆点上。

但是,如果我采用完全相同的代码并简单地注释掉标签, watch 应用程序就会加载并运行良好。

@IBAction func sampleFunc() {
//myLabel.setText("hello world")
myButton.setTitle("hermes")
}

结果:

enter image description here

如果我单击该按钮,它会按预期更改为“hermes”:

enter image description here

到底为什么会发生这种事?我已经坐在这里整整四个小时试图解决这个问题。该标签作为 IBOutlet 连接。我已经清理了该项目。我已经关闭了 XCode,重新启动了我的整个计算机。我从头开始制作了第二个项目。全部都一样。为什么我不能简单地将此标签保留为不注释?如果按钮操作中未注释标签,为什么应用程序永远不会加载?额外信息:即使我将未注释的标签放在其他地方,例如在 willActivate() 方法中,它的行为方式与应用程序从不加载相同。

最佳答案

不错!经过几个小时的坚定努力,仅仅在 StackOverflow 上发布问题的过程就帮助我找到了答案。在几个例子中,我用眼角的余光注意到了它,但从未想过它真的很重要。我说的是“弱”。答案很简单,WKInterfaceLabel 标签必须是弱标签。而我一直这样声明 var:

@IBOutlet var myLabel: WKInterfaceLabel!

我实际上需要这样做(注意“弱项”):

@IBOutlet weak var myLabel: WKInterfaceLabel!

我碰巧看到它非常接近 this Apple Swift documentation page 的顶部作为 Swift 的例子。

当我尝试时,它成功了!

关于ios - Swift WKInterfaceLabel IBOutlet 在启动时卡住 Watchkit 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30677344/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com