为什么Swift中的可选项给我EXC_BAD_ACCESS?

时间:2014-12-04 23:46:52

标签: ios swift exc-bad-access

我有以下代码:

// Get the matches
var recipieMatches = queryResults[MATCHES_INDEX] as Array<Dictionary<String, AnyObject>>
// Set some global vars
var numberOfRecipiesToDisplay: Int = recipieMatches.count

for i in 0...(numberOfRecipiesToDisplay - 1)
{
    var time:  Int? = ((recipieMatches[i])["totalTimeInSeconds"]) as Int? // THIS LINE
}

我在for循环中的行上收到了EXC_BAD_ACCESS错误。

我的问题:这怎么可能?我知道recipieMatches[i]是一个值,因为for循环遍历数组的计数。

1 个答案:

答案 0 :(得分:5)

如果您提取的值不是正确类型,则

as会崩溃 - 在这种情况下,如果它不是Int?

相反,使用可选的强制转换 - as?。如果该值不是Int?,则可选项将为nil