入力値にNGワードが含まれているか配列で確認するコード
前提
NGワードの文字列の配列があり、
入力値などの、とある文字列がそれらを1つ以上含んでいるか確認したい
一見contains
を使えば良さそうにも思えるが、NGワードの配列の要素を1つづつ確認するには繰り返し処理を使わなければならない。
解決策
allSatisfy
を使う
// NGワードの配列
var prohibited_words : [String] = []
// 入力値など
var value = textLabel.text
if self.prohibited_words.allSatisfy({ !value.contains($0) }){
// NGワードが1つも含まれていなかった場合の処理
}
else{
// NGワードが1以上含まれていた場合の処理
}
allSatisfy
は配列の全ての値が条件を満たすか判定するメソッド
Swiftのお役立ち情報