我试图转换Int?为String并将其分配给标签而不包括可选文本.我目前有:
struct Choice: Mappable{
var id: String?
var choice: String?
var questionId: String?
var correct: Bool?
var responses: Int?
init?(map: Map) {
}
mutating func mapping(map: Map) {
id <- map["id"]
questionId <- map["questionId"]
choice <- map["choice"]
correct <- map["correct"]
responses <- map["responses"]
}
}
Run Code Online (Sandbox Code Playgroud)
在访问它的类中
var a:String? = String(describing: self.currentResult.choices?[0].responses)
print("\(a!)")
Run Code Online (Sandbox Code Playgroud)
输出是:
Optional(1)
我如何只输出1并删除可选文本?
a是一个Optional,所以你需要事先解开它应用String通过Int初始化它.此外,b不必真的是一个Optional情况下,你如想为它提供一个默认值,其中案件a是nil.
let a: Int? = 1
let b = a.map(String.init) ?? "" // "" defaultvalue in case 'a' is nil
Run Code Online (Sandbox Code Playgroud)
或者,如果目的是将可能存在且可能可String转换的值分配给a a的text属性UILabel,则可以使用可选绑定将成功转换分配给标签:
let a: Int? = 1
if let newLabelText = a.map(String.init) {
self.label.text = newLabelText
}
Run Code Online (Sandbox Code Playgroud)