2015-07-31 3 views
0

Я хотел бы спросить, как я могу искать с несколькими фильтрами в searchDisplayControllerвид поиска таблицы с использованием нескольких фильтров

вот мой метод:

func filterContentForSearchText(searchText: String, scope: String = "All") { 
    // Filter the array using the filter method 
    self.filteredCandies = self.person.filter({(candy: Candy) -> Bool in 

     let categoryMatch = (scope == "All") || (candy.category == scope) 

     let stringMatch = candy.name.rangeOfString(searchText) 

     return categoryMatch && (stringMatch != nil) 
+0

Какой разделитель для условий поиска вы собираетесь использовать в своей строке поиска? Запятые, пробелы, '|' и т. д. – 72A12F4E

+0

Только следы, и я хочу, чтобы мой контент отображался, и я начинаю поиск с буквы верхнего или нижнего регистра. Пример: Когда я ищу iPhone или Iphone, в представлении таблицы должен отображаться ячейка iPhone. Спасибо за быстрый ответ. –

ответ

0

Что вы должны сделать, это разделить из поиска текста на ваш разделитель (пробелы) и отфильтруйте результаты на основе различных поисков, которые вы могли бы выполнить.

Вот краткий пример, который я придумал на детской площадке.

import Foundation 
import UIKit 

var searchText = "i F" 
var arrayOfThingsIWantToSearch: [String] = ["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"] 
var searchTerms: [String] = split(searchText) {$0 == " "} //split out our search text on spaces to get multiple search terms 

var filtered: [String] = [] 

for item in arrayOfThingsIWantToSearch { 
    for searchTerm in searchTerms { 
     if (item as NSString).containsString(searchTerm) { 
      filtered.append(item) 
      break 
     } 
    } 
} 

print(filtered) //prints "[Four, Five, Six, Eight, Nine]" 
+0

Большое спасибо, но я до сих пор не могу понять, как реализовать это в моем проекте. –

Смежные вопросы