2016-09-29 45 views
0

我想製作一個應用程序,與電影名稱列表,搜索功能,電影列表通過文本文件導入到稱謂,我有問題使用Xcode給出的filter功能,我知道它的意思是看東西沿着這些路線,但什麼會我把在該地區「AnyObject」使用Xcode的過濾器功能與NSMutableArray

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]() 

我希望這是足夠的信息omeone發出一些信息。 :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)") 
     } 
    } 
+1

你在'arrayMovies'中存儲了什麼樣的對象? (另外,爲什麼不使用Swift數據類型而不是NS *?) –

+1

一如既往,**使用本機Swift數組而不是不相關的Foundation NSMutableArray **。編譯器不知道 - 我也沒有 - 數組實際包含的內容。 – vadian

+0

嘿對不起我還在很新的編碼,這是林存儲巴里電影在這個階段.... – Ibby

回答

0

你可以用謂詞做到這一點:

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

希望這有助於。