我做了一些谷歌搜索,并且示例使用“,”使用多个where语句,但它对我不起作用。我试过&&同样。
if let movesDict = pokemonInfoDict["moves"] as? [Dictionary<String,AnyObject>] where movesDict.count > 0, movesDict["learn_type"] == "level up"{
}
if let movesDict = pokemonInfoDict["moves"] as? [Dictionary<String,AnyObject>] where movesDict.count > 0 && movesDict["learn_type"] == "level up"{
}
非常感谢任何帮助。
答案 0 :(得分:3)
您想要&&
- 您的代码必须遇到其他问题,因为这样做有效:
let foo: Int? = 10
if let bar = foo where bar > 8 && bar % 2 == 0 {
print("It works")
}
答案 1 :(得分:1)
你试过这个:
if let movesDict = pokemonInfoDict["moves"] as? [Dictionary<String,AnyObject>]
where movesDict.count > 0
&& movesDict["learn_type"] == "level up"
{
// ...
}
问题是movesDict
是一个字典数组,当你说"learn_type"
时你尝试使用字符串movesDict["learn_type"]
作为该数组的下标,但数组下标必须是Int
。