【问题标题】:updateSearchResultsForSearchController JSONupdateSearchResultsForSearchController JSON
【发布时间】:2015-06-17 07:58:27
【问题描述】:

我尝试对我的 tableview 执行搜索,但出现以下错误。 我将如何实现 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'

谢谢...

【问题讨论】:

  • 制作它(articleList! as NSArray)
  • 这也没有用...
  • 试试articleList as! NSArray

标签: json swift tableview uisearchbar uisearchcontroller


【解决方案1】:

从你的 Swift 数组中创建(而不是强制转换)一个新的 NSArray:

let nsArticleList = NSArray(array: articleList!)

然后使用它:

let array = nsArticleList.filteredArrayUsingPredicate(searchPredicate)

【讨论】:

  • 谢谢 Eric,我又遇到了一个错误;找不到接受类型为“(数组:[JSON])”的参数列表的“NSArray”类型的初始化程序
  • 我明白了。虽然我不能 100% 确定,但我认为这是因为 Swift 数组中的 JSON 类型,看起来 NSArray 不知道如何从 JSON 类型的 Swift 数组中创建 NS 数组。很遗憾,我现在没有解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 2015-02-18
  • 1970-01-01
  • 2012-11-17
  • 2018-01-01
  • 1970-01-01
相关资源
最近更新 更多