- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Swift 中设置 UILabel 我可以执行以下操作
@IBOutlet var wLabel: UILabel!
或
@IBOutlet var wLabel: UILabel?
设置文本我可以做
wLabel.text = "..."
或者,对于后者,做
wLabel?.text = "..." // with a question mark for the optional
将它们保持为可选将有助于它们意外为 nil 的情况,因为它会跳过此调用并继续执行代码。如果标签为 nil,则使用 !
声明它们会使应用程序崩溃。
现在为什么不把所有东西都设为可选的呢?我能想到的唯一原因是为了更好的表现。如果我的应用程序有很多 UI 元素,那么我是否应该避免让它们成为可选元素,因为它们是可选的意味着性能方面的劣势?我在这里找不到任何相关信息。
最佳答案
在某些情况下,崩溃非常好,因为如果没有崩溃,那么即使是很小的错误也很难追踪。
考虑带有 !
的 @IBOutlet 示例:
@IBOutlet var wLabel: UILabel!
wLabel.isEnabled = true
只需从 Storyboard中删除 Outlet 标签的连接并运行该应用程序,您的应用程序就会在 wLabel.isEnabled = true
时崩溃。由于您遇到了崩溃,因此您可以进入 Storyboard查看连接是否正确。如果没有连接,你添加它,该死的!你轻松解决了这个问题。
现在考虑带有 ?
的 @IBOutlet 示例:
@IBOutlet var wLabel: UILabel?
wLabel?.isEnabled = true
做同样的事情,只需从 Storyboard中删除 Outlet 标签的连接并运行应用程序,您的应用程序根本不会崩溃。您将无法知道错误,从而使您的代码变得一团糟且无法追踪。
Apple 人员非常了解可选的东西,他们确实出于某种原因强制解包了@IBOutlet
。当然 !
和 ?
关于可选 UI 元素的快速性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794971/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!