2016-02-03 2 views
4

Извинения за причудливое название. У меня есть массив Ints, и я хотел бы определить NSPredicate, который будет фильтровать элементы с connectionType равным значению, содержащемуся в массиве.Запрос NSPredicate IN из элементов массива

Так что в основном что-то вроде:

fetchRequest.predicate = NSPredicate(format: "connectionType IN { all items in array } 

Я нашел несколько примеров Objective C, что я думаю, имеет дело с этим, но я только что получил в развитие IOS и работали только с Swift, поэтому помощь здесь будет высоко оценили :)

Я попытался сделать это:

fetchRequest.predicate = NSPredicate(format: "connectionType IN \(myIntArray)" 

Однако это возвращает NSInvalidArgumentException. Я чувствую, что я близка.

NSInvalidArgumentException', reason: 'Unable to parse the format string "connectionType IN [28, 28]" 

Если я сделать следующее:

fetchRequest.predicate = NSPredicate(format: "connectionType IN %@", myArray) 

Я получаю эту ошибку вместо:

NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (connectionType IN {28, 28})' 

ответ

9

Вы бы построить предикат, как это:

NSPredicate(format:"connectionType IN %@", yourIntArray) 

Я надеюсь, это полезно.

+0

Спасибо за предложение, и похоже, что он почти работает. Тем не менее, я получаю следующую ошибку: NSInvalidArgumentException ', причина: «Невозможно проанализировать строку формата» connectionType IN [28, 28] « – ardevd

+0

Nevermind, он работал, когда я понял, что у меня есть отношения« один ко многим »и соответствующим образом скорректированы. Спасибо! – ardevd

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