ios - UILabel 文本变量未正确更新 - Swift 4
问题描述
作为 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
块中,您更改值,display.text
以便也满足第二个if
条件;仅用于else if
仅运行其中一个块。
推荐阅读
- .net - 带有实体框架 6.2 的 Azure Function V2
- email - 使用 TIdSMTP 组件将邮件发送到具有 TLS/SSL 配置的服务器
- sql - 如何在 SQL Server 中“复制”选择语句?
- sql - 搜索旅行时间表的路线
- python-3.x - 使用 Pandas Python3 xlsxwriter 在彼此下方写入 xlsx 列
- r - 提取 auroc 函数 PLSDA R 的 ROC 曲线坐标
- java - 无法使图像在 jpanel 上消失
- r - 通过 ODBC 驱动程序将 MS Access 连接到 R
- javascript - OSX 升级后一个修饰键不起作用
- opengl - 复制 mipmap 时 OpenGL 直通着色器跳过像素