В Swift 4 у меня есть модель CoreData «Предложение», которая имеет атрибут String «englishsentence». У меня также есть массив «слов», и я хотел бы получить все предложения, для которых атрибут «englishsentence» содержит одно или несколько слов в массиве.
var words = ["today", "yesterday", "tomorrow"]
Этот массив является лишь примером. Предполагается изменить во время выполнения и может иметь любую длину.
и в запросе на выборку я пытаюсь сделать что-то вроде этого:
let fetchRequest =
NSFetchRequest<NSManagedObject>(entityName: "Sentence")
let predicate = NSPredicate(format: "ANY englishsentence CONTAINS ANY word IN %@", words)
fetchRequest.predicate = predicate
Я могу создать предикат для всех предложений, содержащих одно конкретное слово. Однако я не могу заставить его работать с массивом слов, если, конечно, я не переберу массив слов и сделаю новый запрос на выборку для каждого отдельного слова. Но это кажется ужасно неэффективным.