这段代码有什么问题?
如何将列表指定为字符串和数字?
我收到一个错误“AnyObject 不可转换为”Int“
var stringNum = ["name", 2]
var number:Int = stringNum[1]
这段代码有什么问题?
如何将列表指定为字符串和数字?
我收到一个错误“AnyObject 不可转换为”Int“
var stringNum = ["name", 2]
var number:Int = stringNum[1]
该数组被推断为该类型[AnyObject]
,并且在 swift 中,您必须始终显式地向下转换您的变量。
您需要测试该值是否可以转换为 Int:
if let number : Int = stringNum[1] as? Int {
// use number as Int
}
如果值无法转换,则as?
操作符将返回并且不会运行块,否则它将返回转换为 Int 的值并运行设置为 Int 值的块nil
if
if
number
如果您确信数组中的元素按预期输入,那么只需
var number:Int = stringNum[1] as Int
作品。但是,如果您不确定数组元素中的类型一致性,那么您需要在分配之前确认类型。