我正在尝试读取一个字符串并将其转换为一个 int。我有一个解决方案,但它似乎太复杂了。我想我仍然在尝试解开包装。
我在下面发布了代码以及我在每个解决方案中遇到的编译器错误。
在此示例中,我尝试从 UserDefaults 读取字符串并转换为整数值。
static func GetSelectedSessionNum() -> Int32 {
var sessionNum : Int32 = 0
let defaults = UserDefaults.standard
let optionalString: String? = defaults.string(forKey: "selectedSessionNum")
// this works but it's too complicated
if let string = optionalString, let myInt = Int32(string) {
return myInt
}
return 0
// Error : optional String? must be unwrapped to a value of type 'String'
let t : String = defaults.string(forKey: "selectedSessionNum")
if let s : String = defaults.string(forKey: "selectedSessionNum") {
// error - Int32? must be unwrapped to a value of Int32
return Int32(s)
}
return 0
}