2016-10-26 6 views
0

У меня есть объект под названием Locations, который изначально заселен JSON через Alamofire. На UIViewController со встроенной кнопкой TableView и обновлением мне нужно выполнить поиск трех конкретных записей в объекте Location.Добавление NSPredicate в запрос выборки основных данных

Вот то, что я до сих пор:

//Refresh button action 
    @IBAction func refreshAction(_ sender: AnyObject) { 
     let locationPredicate = NSPredicate(format: "title = %@", "Bronco Stadium", "Morrison Center", "2 Morrison Center") 
     let fetchRequest:NSFetchRequest<Location> = Location.fetchRequest() 
     fetchRequest.predicate = locationPredicate 
     do { 
      let results = try DatabaseController.getContext().fetch(fetchRequest) 
      locationList = results as [Location] 
      tableView.reloadData() 
     } catch { 
      print("Error with request: \(error)") 
     } 
    } 

результаты возвращается с одной записью: "Стадион Bronco". Я надеюсь, что он вернется с тремя пунктами, переданными в NSPredicate.

Прошу прощения, если это глупый вопрос; Я новичок в Свифте.

+0

Это выборка лишь один потому что аргумент передается только один раз с помощью 'title =% @', поэтому попробуйте это: 'let locationPredicate = NSPredicate (format:" (title =% @) OR (title =% @) OR (title =% @) «Стадион Бронко», «Моррисон-центр», «Моррисон-центр 2») – Santosh

ответ

0

Прямо сейчас, вы хотели бы переписать это как

let locationPredicate = NSPredicate(format: "title = %@ OR title = %@ OR title = %@", "Bronco Stadium", "Morrison Center", "2 Morrison Center") 

или, если это звезды, чтобы получить более комплексное использование методики, показанной в ответах на most effective way of searching using NSPredicate OR statement

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