У меня есть база данных Realm со списком мест, в каждом из которых есть список placeTypes. Я хотел бы иметь возможность использовать запрос предиката, например -
let searchKey = "hotel"
let predicate = NSPredicate(format: "%@ IN placeTypes", searchKey)
, но это не работает, когда я хочу сопоставить несколько ключей поиска. Мое решение до сих пор состоит в том, чтобы использовать NSCompoundPredicate -
let searchKeys = ["hotel", "cafe", "bar"]
let predicates: [NSPredicate] = searchKeys.map { NSPredicate(format: "%@ IN placeTypes", $0) }
let compoundPredicate = NSCompoundPredicate(orPredicateWithSubpredicates: predicates)
все хорошо, хорошо работает и работает, но у меня есть ощущение, что это не может быть особенно эффективно для больших таблиц, и было бы неплохо в любом случае включить его в один предикат.
Если у кого-нибудь есть идеи, как это можно сделать, я был бы признателен - ни в одном поиске по SO подобный вопрос не найден.