将可选字符串转换为Int64

时间:2016-07-05 19:06:29

标签: ios iphone swift dictionary

我正在尝试将可选字符串转换为字符串,然后转换为Int64。

 let number = blog["number"] as! String
print(Int64(number))

问题在于"数字" key是一个可选字符串,因此在转到Int64时会崩溃。我有几种方法可以删除可选类型,但都没有。

3 个答案:

答案 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
}