我正在构建一个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}
}
非常感谢任何建议的帮助!
答案 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个变体。