Фильтр базовых данных NSPredicate по классу сущностей?
Как бы я создал NSPredicate
фильтровать по сущности класса Contact
?
Решение проверки NSPredicate для вида сбоев класса объекта:
[NSPredicate predicateWithFormat:@"person.class == %@", [Contact class]];
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'keypath person.class not found in entity <NSSQLEntity User id=12>'
Фон
У меня есть основные данные объектов User
(пользователь приложения) & Contact
(адресная книга контакта), оба дети Person
(абстрактная сущность). Person
имеет много identities
, который может быть emails
, phones
, или же usernames
,
Чтобы создать текстовое сообщение наподобие typeahead, я хочу создать NSFetchRequest
за Identity
лица, где person
имеет класс Contact
,
2 ответа
Вы, возможно, путаете несколько вещей. Ответ, который вы указываете, о предикате для фильтрации массива UIView
s. Предикат в основных данных работает немного по-другому.
Чтобы достичь желаемого результата, просто установите entity
вашего запроса на получение @"Contact"
,
Если у вас есть обязательное поле в Контакте, вы можете отфильтровать его, если оно не пустое. Если у вас нет обязательного поля в Контакте (это не Персона), вы можете добавить фиктивное обязательное поле и отфильтровать его.