обновлениеSearchResultsForSearchController JSON

Я пытаюсь реализовать поиск в своем табличном представлении и получаю следующую ошибку. Как я собираюсь реализовать данные JSON?

var articleList: [JSON]? = []
var searchResults: [JSON]? = []

И моя функция updateSearchResultsForSearchController:

func updateSearchResultsForSearchController(searchController: UISearchController) {
    self.searchResults?.removeAll(keepCapacity: false)

    let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text)

    let array = (articleList as NSArray).filteredArrayUsingPredicate(searchPredicate)
    searchResults = array as! [String]

    self.tableView.reloadData()
}

ОШИБКА: '[JSON]?' не конвертируется в 'NSArray'

Спасибо...


person serdar aylanc    schedule 17.06.2015    source источник
comment
сделать это (статьяList! as NSArray)   -  person Sandeep    schedule 17.06.2015
comment
это тоже не сработало...   -  person serdar aylanc    schedule 17.06.2015
comment
попробуй articleList as! NSArray   -  person Praveen Gowda I V    schedule 18.06.2015


Ответы (1)


Создайте (вместо приведения) новый NSArray из вашего массива Swift:

let nsArticleList = NSArray(array: articleList!)

Затем используйте его:

let array = nsArticleList.filteredArrayUsingPredicate(searchPredicate)
person Eric Aya    schedule 17.06.2015
comment
Спасибо, Эрик, я получил еще одну ошибку; Не удается найти инициализатор для типа «NSArray», который принимает список аргументов типа «(массив: [JSON])» - person serdar aylanc; 17.06.2015
comment
Я понимаю. Хотя я не уверен на 100%, я думаю, что это из-за типа JSON внутри вашего массива Swift, похоже, что NSArray не знает, как сделать массив NS из этого массива Swift типа JSON. У меня нет решения для этого прямо сейчас, к сожалению. - person Eric Aya; 17.06.2015