検索テキストフィールドを開発中です。私はこのような文字列の配列を持っています....Swift:配列内の文中の検索文字列
var keywords:[String] = ["dance, music and hippo", "apple juice, tomato"]
機能を含んでいますが、うまく機能しませんでした。
for i in 0..<keywordsArr.count {
if(!keywordsArr[i].contains(searchTextField.text!)){
print("removed \(keywordsArr[i])")
keywordsArr.removeAtIndex(i)
}
}
これは私が使用している拡張機能です。
extension String {
func contains(find: String) -> Bool{
return self.rangeOfString(find) != nil
}
}
結果は、私がテキストで関数を呼び出していなければなりません:あなたは唯一の要素を持つ配列を返すfilter
を使用して、非常に簡潔にこれを達成することができ、「音楽」、それはその文字列
あなたは反復処理中に配列を突然変異させています。それは問題を引き起こすかもしれません。通常、この場合、逆の反復を行います(最後から開始します)。 – Larme
私のコードを更新してくれてありがとう:-) –
@PanMluvčíはあなたの編集をロールバックすることができます。答えを含むためにあなたの質問を更新すべきではありません。このようにして、あなたの質問は将来の訪問者に役立つ可能性が高くなります。 – overactor