我有一个字符串00012
。我需要从中创建一个字符串12
。然后通过将字符串连接到名称来加载UIImage。
所以我做了以下
let myString = "00012"
let myInt = Int(myString)
let imageName = "name_\(myInt)"
let image = UIImage(named: imageName)
问题是(myInt)返回一个可选项。我没有imageName = name_12
,我得到imageName = name_optional(12)
如何摆脱选择?
我无法从初始字符串中修剪前3个零,因为数字可以是00001
答案 0 :(得分:0)
使用可选绑定:
let myString = "00012"
if let myInt = Int(myString) {
let imageName = "name_\(myInt)"
let image = UIImage(named: imageName)
}
或者使用正则表达式:
let myString = "00012"
let myStringWithoutLeadingZeros = myString.replacingOccurrences(of: "^0+", with: "", options: .regularExpression)
let imageName = "name_" + myStringWithoutLeadingZeros
let image = UIImage(named: imageName)
答案 1 :(得分:0)
您可以直接打开该值
let myString = "00012"
let myInt = Int(myString)! // unwrapping
let imageName = "name_\(myInt)"
let image = UIImage(named: imageName)
或者您可以使用可选绑定
let myString = "00012"
if let myInt = Int(myString) { // Optional binding
let imageName = "name_\(myInt)"
let image = UIImage(named: imageName)
}