将AnyObject转换为Int

时间:2015-09-16 18:42:13

标签: ios swift

我正在尝试将anyObject转换为Int。这是我的代码:

println(currentObject[0])
println(_stdlib_getDemangledTypeName(currentObject[0]))
  

2   
Swift.ImplicitlyUnwrappedOptional <Swift.AnyObject>

我正在尝试将currentObject[0]转换为Int。这是我试过的:

let num: Int = currentObjec[0] as! Int

当我运行应用程序时,出现以下错误:

  

无法将'__ NSCFString'类型的值(0x103c93c50)转换为'NSNumber'(0x103535b88)

当我尝试这样做时:currentObject[0].toInt()

我收到错误说

  

'AnyObject'没有名为'toInt()'

的成员

我能够使其发挥作用的唯一方法是执行以下操作:

let numStr = currentObject[0] as! String
let num: Int = numStr.toInt()!

有更简单的方法吗? (无需先将其转换为String。)

1 个答案:

答案 0 :(得分:7)

来自错误消息

  

无法将'__ NSCFString'类型的值(0x103c93c50)转换为'NSNumber'(0x103535b88)

您可以断定currentObject[0]实际上是NSString。 在这种情况下,您只需使用

进行转换即可
let numStr = currentObject[0].integerValue

但请注意,如果数组元素不是NSString,则会崩溃。