如何复制两个标签的结果?

How copy the result of two labels?

我有结果复制按钮的代码(来自 displayResultLabel

我怎样才能让它一次从两个标签复制(来自resultLabel,displayResultLabel

resultLabel - 历史

displayResultLabel - 结果


示例:

resultLabel - 5+22

displayResultLabel - 27

5+22=27

Photo


我试过了,但我明白了: 可选 ("5 + 22") = 可选 ("27")

UIPasteboard.general.string = "\(String(describing: self.resultLabelText.text)) = \(String(describing: self.displayResultLabel.text))"

复制按钮

...
let deleteActions = UIAlertAction(title: NSLocalizedString("Copy history",comment: ""), style: .default, handler: {
        (alert: UIAlertAction!) -> Void in
        UIPasteboard.general.string = self.resultLabelText.text
        
        self.present(alert, animated: true, completion:nil)
    })
...

这是因为标签文本是可选的,所以您得到:

Optional ("5 + 22") = Optional ("27")

改为这样做:

if let resultText = resultLabelText.text, let displayText = displayResultLabel.text {
    UIPasteboard.general.string = "\(resultText) = \(displayText)"

}

你只需要打开你的值,因为 self.resultLabelText.textself.displayResultLabel.text 是可选的,这意味着返回的值可以是 nil 或有一个值。

如果您确定您有一个值并且可以转换它,只需像这样放置一个感叹号来打开它们:self.resultLabelText.text! self.displayResultLabel.text! 或使用 Rashwan 提议的 可选绑定 。这是最安全的方法!

Apple 基础知识文档:Basics