我有一个标有“3x3”的按钮,现在我想在按钮点击功能中创建一个值为“3”的Int变量。
我试过了
UITableViews
我得到的字符串就像这样
let newBoardSizeString = String.localizedStringWithFormat("\(sender.currentTitle?.characters.first)")
let newBoardSize = Int(newBoardSizeString)
和我得到的是
"Optional(\"3\")"
我只想要3
答案 0 :(得分:4)
这是XY problem。
你问:“如何将我的按钮标签的第一个字符转换为Int。”
真正的答案是“不要那样做”。让代码的逻辑依赖于显示信息是一个非常糟糕的主意。
一个简单的解决方案是使用按钮的tag属性,并在创建按钮时将标记值设置为3:
let newBoardSize = sender.tag
请注意,您需要将发件人的IBAction设置为类型UIButton(更好的解决方案)或将发件人转换为IBAction中的正确类。
另一种方法是设置不同按钮的出口(例如threeButton
和fourButton
),然后在IBAction中,检查哪个按钮是发件人,并使用switch语句找出合适的每个按钮的值:
func buttonTapped(sender: UIButton) {
switch sender {
case threeButton:
//Use the value 3
case fourButton
//Use the value 4
}
}
答案 1 :(得分:0)
你试过吗?
Int(newBoardSizeString)!
并确保在解开值之前处理nil
。
答案 2 :(得分:0)
这很有效。
let newBoardSize = newBoardSizeString as! Int
答案 3 :(得分:0)
let newBoardSizeString = String.localizedStringWithFormat("\(sender.currentTitle?.characters.first)")
if let unwrapped = Int(newBoardSizeString){
let newBoardSize = unwrapped
}
答案 4 :(得分:0)
!
let newBoardSizeString = String.localizedStringWithFormat("\(sender.currentTitle?.characters.first!)")