获得多个IF声明条款以协同工作

时间:2018-02-16 05:45:00

标签: ios swift if-statement func

我正在构建一个iOS测验应用程序,并根据问题标签中出现的某些关键词,我希望背景照片更改对应于问题中的关键字。例如,如果问题标签包含单词" food"我希望背景图片能够始终显示苹果的图片。如果问题标签包含单词" fruit"我还希望背景图片与关键词" food"相同。但是,当我运行我的代码时,如果我只使用一个关键字,它只能正常工作。

 //this code works and changes the background picture appropriately
 func quizImage() {

 if (questionLabel.text?.contains("food"))!

   //applePicture is the name of the image
  { questionImage.image = applePicture }

   }

但是,当我尝试以下操作时,要使用多个if子句,背景照片根本不会发生变化,即使其中一个关键词出现在问题标签中

  func quizImage() {

   //this code doesn't work and the background photo never changes
  if (questionLabel.text?.contains("food"))!,(questionLabel.text?.contains("apple"))!

   { questionImage.image = applePicture}

   }

非常感谢任何建议的帮助!

2 个答案:

答案 0 :(得分:1)

如果您使用逗号(,),那么仅当两个条件都满足时才会为真。这样做,

if let text = questionLabel.text, (text.contains("food") || text.contains("apple")) {
    questionImage.image = applePicture
}

答案 1 :(得分:1)

您可以将这两个变体包装在一个数组中,并使用contains函数:

if let text = questionLabel.text, ["food", "apple"].contains(where: { text.contains($0) }) {
    questionImage.image = applePicture
}

这将减少代码重复,并且它可以扩展,以防您以后需要覆盖更多2个变体。