ios - UILabel 文本变量未正确更新 - Swift 4

标签 ios swift

作为 Swift 编程的介绍,我正在尝试制作一个小型计算器应用程序。我在尝试创建加减按钮功能时遇到错误。按钮的作用是点击的时候,如果显示文字的值为> 0在字符串的开头添加一个减号(即 8 ---> -8 ,如果显示文本的值为 < 0 则将显示文本的值乘以负 1,并将显示文本值分配为字符串新号码。

我的问题是,当我第一次单击减号按钮时,它按预期工作,但是,当我第二次单击它时 ( < 0 ),显示文本仍然在数字前保留减号。我的代码是:

@IBAction func pmButton(_ sender: Any) {

    if toFloat(value: display.text!) < 0 {
        display.text = NSNumber(value: (toFloat(value: display.text!) * -1)).stringValue
        print(display.text!)
    }

    if toFloat(value: display.text!) > 0 {
        display.text = "-" + display.text!
    }
}

print(display.text!) 的值给出了正确的值(没有减号),但在实际标签上减号仍然存在。甚至当我向字符串添加一些错误值时也是如此,即

display.text = NSNumber(value: (toFloat(value: display.text!) * -1)).stringValue + "abc"

将导致 ( -8 ---> -8abc)。

我还尝试添加 print(display.text!)在我重新分配值之前(在第 4 行),它恢复到原来的负值。所以看起来像display.text在函数中被赋值,但从未在函数外正确更新。

我敢肯定这是非常简单的事情,但似乎无法解决。

最佳答案

在您的第一个 if block 中,您更改了 display.text 的值,以便也满足第二个 if 条件;只需使用 else if 来仅运行其中一个 block 。

关于ios - UILabel 文本变量未正确更新 - Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51232091/

相关文章:

ios - ApplicationWindow不遵守大小

ios - 尝试在 MKMapView 中查找用户位置的问题

ios - 如何访问 PFObject 中的信息?

ios - 如何在 iOS 中从数组创建 TableView 节标题和行

ios - Azure Web App - 当您选择运行时堆栈作为 Node.js 时,为什么它只允许您选择 Linux 作为操作系统?

ios - Xcode 7.3 中的自动布局 (swift 2)

ios - 将图像和标题都添加到分段控制 IOS

ios - 用苹果登录抛出授权失败: Error Domain=AKAuthenticationError Code=-7026

swift - 自 iOS 9 以来,我在使用 Alamofire 上传带参数的图像时遇到问题,这是怎么回事?

ios - 如何在核心数据的后台线程中保存到托管对象上下文