#ios #swift #core-data #nspredicate
Вопрос:
Мой график объектов выглядит следующим образом
Серверы <—><—>> События
Каждая сущность события имеет необязательный идентификатор атрибута.
Событие может принадлежать только одному серверу, но сервер может быть связан со многими событиями
Учитывая массив идентификаторов событий [1, 2, 3]
Я хочу, чтобы все серверы, на которых есть событие, идентификатор которого отображается в данном массиве
Я пытался это сделать, но получил «не удается проанализировать строку формата»
NSPredicate(format: "SUBQUERY(events, $event, ANY $event.clientID in %@)", clientIDs as CVarArg)
Ответ №1:
Попробуйте добавить @count
в свой подзапрос.
NSPredicate(format: "SUBQUERY(events, $event, ANY $event.clientID in %@).@count != 0", clientIDs as CVarArg)
Проверьте эти документы для небольшой справки.
Комментарии:
1. Спасибо! Это правильный ПОДЗАПРОС (…), возвращающий массив. Нам нужно проверить, соответствует ли его количество != 0, чтобы вернуть значение true или false, ожидаемое предикатом.