2017-01-19 36 views
-6

我有一個字符串00012。我需要製作一個字符串12。然後通過將字符串連接到名稱來加載UIImage。 所以我做了以下詮釋爲非可選字符串

let myString = "00012" 
let myInt = Int(myString) 
let imageName = "name_\(myInt)" 
let image = UIImage(named: imageName) 

的問題是,(敏)返回一個可選的。我沒有得到imageName = name_12,我得到imageName = name_optional(12)

我該如何擺脫可選?

我不能修剪從初始字符串前3個零,因爲數量可00001

+1

選配是雨燕編程語言的完全不可分割的一部分。 [第一部分,Swift編程語言指南的「基礎知識」]詳細介紹了它們(https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/) TheBasics.html#// apple_ref/DOC/UID/TP40014097-CH5-ID330)。閱讀。 – Alexander

回答

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) 
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) 
} 
相關問題