2

这段代码有什么问题?

如何将列表指定为字符串和数字?

我收到一个错误“AnyObject 不可转换为”Int“

var stringNum = ["name", 2]

var number:Int = stringNum[1]
4

2 回答 2

2

该数组被推断为该类型[AnyObject],并且在 swift 中,您必须始终显式地向下转换您的变量。

您需要测试该值是否可以转换为 Int:

if let number : Int = stringNum[1] as? Int {
    // use number as Int
}

如果值无法转换,则as?操作符将返回并且不会运行块,否则它将返回转换为 Int 的值并运行设置为 Int 值的块nilififnumber

于 2014-06-13T23:30:58.670 回答
1

如果您确信数组中的元素按预期输入,那么只需

 var number:Int = stringNum[1] as Int

作品。但是,如果您不确定数组元素中的类型一致性,那么您需要在分配之前确认类型。

于 2014-06-13T23:33:12.790 回答