我在Swift制作计算器。卡在退格键中。如果用户按错了数字,则退格按钮将有助于从显示屏上删除数字。
虽然我写了dropLast函数并且有效。它返回适当的结果。如何使用计数方法,不了解计数方法的返回类型。
@IBOutlet weak var display: UILabel!
@IBAction func backspace() {
//how to use count method to check collection of elements
//dropLast drop the last digit and display result
let dropedDigit = dropLast(display.text!)
display.text = dropedDigit
}
答案 0 :(得分:0)
这样的事情怎么样:
private func dropLast(text: String) -> String {
let endIndex = advance(text.endIndex, -1)
return text.substringToIndex(endIndex)
}
它计算要进行剪切的索引(文本的endIndex - 1),然后将子字符串返回到此索引。此函数应删除最后一个字符。
我这里没有使用count方法,但是为你引用Swift 1.2引入了count(<#x: T#>)
方法来计算包括字符串在内的集合的长度。
答案 1 :(得分:0)
我知道这个帖子已经过时了,但我刚刚在Swift 2.2中完成了这个工作的过程,并认为我可以帮忙回答它。
@IBAction func delButton(sender: AnyObject) {
if display.text != nil {
var tempString = Array(display.text!.characters)
tempString.removeLast(1)
display.text = ""
for num in 0..<tempString.count {
display.text = display.text! + String(tempString[num])
}
}
}
基本上,我们正在检查显示标签中是否有内容,因此我们不会抛出错误,如果是这样,请在函数范围内创建一个变量来保存标签& #39;字符串中的字符。之后,我们从数组中删除最后一个字符,清除标签以确保我们不会将已经存在的字符添加到我们的新值中,然后迭代更新的字符数组并将其添加到标签
重要的是要注意我们将数组中包含的值转换为String,因为它们已作为字符值放入数组中,其运行方式与标签所期望的字符串值不同
就像我说的那样,我知道这个帖子有点过时,但是我一直在浏览Swift的课程,并且发现虽然有很多关于Objective-C的信息,但是对于如何在Swift中做很多这样的事情,这是非常危险的信息。由于语言反复更新,我注意到两种语言之间的差距越来越大。