0

Ich versuche, eine App mit einer Liste von Filmtiteln mit einer Suchfunktion zu erstellen, die Liste der Filme wird in die Appellation über eine Textdatei importiert, ich habe Probleme mit der filter Funktion in Xcode gegeben, ich weiß es etwas in dieser Richtung zu suchen ist gemeint, aber was würde ich für „ANYOBJECT“ im Bereich setzenVerwenden der Filterfunktion in Xcode mit einem NSMutableArray

func updateSearchResultsForSearchController(searchController: UISearchController) { 

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


    self.resultsController.tableView.reloadData() 
} 

diese sind, was meine Variablen sind

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

Ich hoffe, das ist genug Informationen für s Omeone, um einige Informationen zu geben. : D

EDIT Dies ist in den arrayMovies Im Speicher was mit Prädikat

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

Welche Art von Objekt speichern Sie in 'ArrayMovies'? (Auch, warum nicht Swift Datentypen anstelle von NS * Einsen verwenden?) –

+1

Wie immer, ** verwenden Sie native Swift 'Array' statt nicht verwandten Foundation' NSMutableArray' **. Der Compiler hat keine Ahnung - ich auch nicht - was das Array tatsächlich enthält. – vadian

+0

hey Entschuldigung Ich bin noch sehr neu in der Codierung, das ist, was ich in Barry Filme in diesem Stadium speichern .... – Ibby

Antwort

0

Sie können es tun:

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

Hoffnung Dieser Hilfe.

Verwandte Themen