ios - 在 Xcode 中使用带有 NSMutableArray 的过滤器函数

标签 ios swift filter nsmutablearray uisearchresultscontroller

我正在尝试制作一个应用程序,其中包含电影标题列表和搜索功能,电影列表通过文本文件导入到名称中,我在使用过滤器时遇到问题> Xcode 中给出的函数,我知道它的意思是沿着这些线查找一些东西,但是我会在“AnyObject”区域中放置什么

func updateSearchResultsForSearchController(searchController: UISearchController) {

    self.filteredMovies = self.arrayMovies.filter { (<#AnyObject#>) -> Bool in
        return true
    }


    self.resultsController.tableView.reloadData()
}

这些是我的变量

var dictMovies = [String:String]()
var arrayMovies = NSMutableArray()
var searchController : UISearchController!
var resultsController = UITableViewController()
var filteredMovies = [String]()

我希望这足以让某人提供一些信息。 :D

编辑这是我存储在 arrayMovies 中的内容

let path = NSBundle.mainBundle().pathForResource("movielist2", ofType: "txt")

    let filemgr = NSFileManager.defaultManager()
    if filemgr.fileExistsAtPath(path!){

        do{

            let fullText = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)

            let readings = fullText.componentsSeparatedByString("@") as [String]

            for i in 1..<readings.count {

                let movieData = readings[i].componentsSeparatedByString("\t")

                dictMovies["MovieTitle1"] = "\(movieData[0])"
                dictMovies["MovieYear"] = "\(movieData[1])"


                arrayMovies.addObject(dictMovies)
            }

        } catch let error as NSError{
            print("Error: \(error)")
        }
    }

最佳答案

您可以使用谓词来做到这一点:

func updateSearchResultsForSearchController(searchController: UISearchController) {
           let resultPredicate = NSPredicate(format: "name contains[c] %@", searchController.searchBar.text)
           self.filteredUserData = self.arrayMovies.filteredArrayUsingPredicate(resultPredicate)
           self.resultsController.tableView.reloadData()
    }

希望这有帮助。

关于ios - 在 Xcode 中使用带有 NSMutableArray 的过滤器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39775949/

相关文章:

ios - 二维 NSArray 中的对象数

ios - 在运行时增加 tableview 高度以包含全部内容

Swift popToViewController 不起作用

java - 从操作栏中过滤 fragment 适配器

ios - Swift - 按子值从 Firebase 中选择

iOS AES 数据/字符串转换

javascript - 如何在 React.js 中根据路由过滤数组?

arrays - Google Sheets 如何根据单元格引用过滤列

ios - 使用 ReactiveCocoa 在模型更新时查看 Controller 状态更新

swift - 以编程方式使用自动布局在 UIVIew 中将 UITextField 设置为中心