2017-04-05 25 views
0
私は2つの属性でホテルエンティティのキ​​ーワードを検索したい

(hotelName & cityName)複数でのコアデータNSPredicate検索は、私が<a href="https://i.stack.imgur.com/rUeux.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/rUeux.png" alt="enter image description here"></a></p> <p>「<strong>ケンジントン・スタジオ</strong>」でホテルを探していた列

属性hotelNameにcityNameが属性である

"ロンドンを" 属性

を検索バーに表示すると、hotelNameとcityNameの中間に(次のように)入力すると、結果を識別して表示する必要があります。これを達成するためのenter image description here

、私は

let charSet = CharacterSet(charactersIn: " ") 
let words = searchText.components(separatedBy: charSet) 
let predicate = NSPredicate(format: "(hotelName IN %@) OR (cityName IN %@)", words, words) 

のようにやっている。しかしその結果は空を与えます。

私を案内してください。

+0

ようにする必要があり、それは動作しますか? –

+0

以下の答えを確認してください、Lokesh。それが動作するかどうか私に教えてください。 –

答えて

0

wordsオブジェクトは[String]配列を返します。配列の各オブジェクトを使用する必要があります。あなたは、ホテル名からではなく、「Kensing」の、すなわち「ケンジントン」を単語全体を入力するのであれば、コードは

let words = searchText.components(separatedBy: " ") 
 
     
 
     var predicateArr = [NSPredicate]() 
 
     for word in words! { 
 
      let predicate = NSPredicate(format: "(hotelName contains [c]) OR (cityName contains [c])", word, word) 
 
      predicateArr.append(predicate) 
 
     } 
 
     
 
     
 
     let compound = NSCompoundPredicate(orPredicateWithSubpredicates: predicateArr) 
 
     let output = array.filtered(using: compound)

関連する問題

 関連する問題