0

Я пытаюсь сделать приложение со списком названий фильмов с функцией поиска, список фильмов импортируется в апелляцию через текстовый файл, у меня возникают проблемы с помощью функции filter приведенной в Xcode, я знаю, что это означало, чтобы посмотреть что-то вдоль этих линий, но что бы я поставил в этом районе «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]() 

Надеюсь, это достаточно информации для s omeone, чтобы выдать некоторую информацию. : D

EDIT Это то, что Im хранение в 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 'Array', а не несвязанный Foundation' NSMutableArray' **. Компилятор понятия не имеет - мне не то, что на самом деле содержит массив. – vadian

+0

эй, извините, я все еще очень новичок в кодировании, это то, что я храню в фильмах барри на этом этапе .... – Ibby

ответ

0

Вы можете сделать это с 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() 
    } 

Надежда Эта помощь.

Смежные вопросы