我正在创建一个简单的计算器应用程序,目前在点击按钮时删除最后一个字符方面遇到了困难。我正在使用dropLast()
方法,但是我一直收到错误提示:
调用中缺少参数#1
@IBAction func onDelPressed (button: UIButton!) {
runningNumber = runningNumber.characters.dropLast()
currentLbl.text = runningNumber
}
在 Swift 中,你可以直接在 String
实例上应用 dropLast()
,而不再需要调用 .characters
来访问 String
的 CharacterView
:
var runningNumber = "12345"
runningNumber = String(runningNumber.dropLast())
print(runningNumber) // 1234
假设runningNumber
是一个String
实例。在这种情况下,runningNumber.characters.dropLast()
不是String
类型,而是一个CharacterView
:
let foo = runningNumber.characters.dropLast()
print(type(of: foo)) // CharacterView
你需要使用CharacterView
来实例化一个String
实例,然后将其赋值回类型为String
的属性中。例如:var runningNumber = "12345"
runningNumber = String(runningNumber.characters.dropLast())
print(runningNumber) // 1234
也就是说,针对您的情况
@IBAction func onDelPressed (button: UIButton!) {
runningNumber = String(runningNumber.characters.dropLast())
currentLbl.text = runningNumber
}
Remove last char from string/text in swift
var str1 = "123456789"
str1.removeLast()
print(str1)
output:
12345678
String
实例(例如runningNumber
)只包含单个字符或为空 (""
),则将其CharacterView
应用dropLast
后得到的String
实例将为空字符串 (""
)。在空序列上应用dropLast()
将导致一个空的(子)序列。这就是我所期望的。你会定义不同的结果吗? - dfrib