[英]Using the filter Function in Xcode with a NSMutableArray
我正在嘗試制作一個具有電影標題列表和搜索功能的應用程序,電影列表通過文本文件導入到名稱中,使用Xcode
提供的filter
功能時遇到問題,我知道這意味着沿着這些思路看,但是我會在“ 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)")
}
}
您可以使用Predicate來做到這一點:
func updateSearchResultsForSearchController(searchController: UISearchController) {
let resultPredicate = NSPredicate(format: "name contains[c] %@", searchController.searchBar.text)
self.filteredUserData = self.arrayMovies.filteredArrayUsingPredicate(resultPredicate)
self.resultsController.tableView.reloadData()
}
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.