Swift:如何在条件绑定中使用多个'where'?

时间:2016-02-28 05:12:01

标签: swift conditional

我做了一些谷歌搜索,并且示例使用“,”使用多个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"{
}

非常感谢任何帮助。

2 个答案:

答案 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