我正在尝试将可选字符串转换为字符串,然后转换为Int64。
let number = blog["number"] as! String
print(Int64(number))
问题在于"数字" key是一个可选字符串,因此在转到Int64时会崩溃。我有几种方法可以删除可选类型,但都没有。
答案 0 :(得分:1)
guard let string = blog["number"] as? String else {
/* Not a string, handle error here */
return
}
guard let number = Int64(string) else {
/* string isn't an Int64, handle error here */
return
}
//use number here
如果您不退出自己的功能,也可以使用if let
进行展开。它不是那么漂亮:
if let string = blog["number"] as? String else {
if let let number = Int64(string) {
//use number here
}
else {
/* string isn't an Int64, handle error here */
}
}
else {
/* Not a string, handle error here */
}
答案 1 :(得分:0)
作为替代方案,您可以使用Query<T>(etc...
中的NSNumberFormatter
(特别是计算属性longLongValue
):
Foundation
答案 2 :(得分:-1)
if let number = Int64(blog["number"] as? String ?? "") {
// executes if blog["number"] exists and is a string containing a number
}