swift - 展开button.titleLabel.text

标签 swift option-type unwrap

我需要将按钮的文本与变量进行比较。

@IBAction func CheckifATrue(sender: AnyObject) {
    if let thisbutton = sender.titleLabel.text {
        if thisbutton == theAnswer.text {
            score++
            println("Correct")}
    }
}

给我一​​个错误,迫使我输入!在标题标签之后。我不能这样做,因为按钮 titleLabel 有可能(实际上是肯定的)为零。为什么 if let 语句不允许我解开包装?是否有另一种方法来拉动按钮文本,我可以通过 if let 安全地删除 optional ,并且仅在有效时执行代码?

最佳答案

您需要将发送者的类型从 AnyObject 更改为 UIButton,然后您可以通过以下方式解开它:

@IBAction func CheckifATrue(sender: UIButton) {

    if let thisbutton = sender.titleLabel?.text {
        if thisbutton == theAnswer.text {
            score++
            println("Correct")}
    }
}

关于swift - 展开button.titleLabel.text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623196/

相关文章:

swift - 使用 DispatchQueue swift 3 下载图像时发现 Optional 为 nil

java - JDK 8 是否有 java.util.Optional.or(Supplier<Optional>) 实现

swift - 为什么 Xcode 告诉我添加 .map { $0.rawValue } 而我只能做 ?.rawValue?

java - 密码未初始化以进行加密/解密

swift - 是否可以将NotificationTokens保存在创建它们的线程之外?

ios - touchesBegin() 创建的 UIView 不会被删除,因为当用户从 iPad 上移开手指时,touchesEnded() 永远不会被调用

ios - 未显示 Collection View ,从未调用 cellForItemAtIndexPath

ios - 在 UIScrollView 中自动调整 UITextView 的大小

Swift 类型类型转换/向下类型转换

matlab - 展开 atan 与 atan2