Фильтр базовых данных 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 ответа

Вы, возможно, путаете несколько вещей. Ответ, который вы указываете, о предикате для фильтрации массива UIViews. Предикат в основных данных работает немного по-другому.

Чтобы достичь желаемого результата, просто установите entity вашего запроса на получение @"Contact",

Если у вас есть обязательное поле в Контакте, вы можете отфильтровать его, если оно не пустое. Если у вас нет обязательного поля в Контакте (это не Персона), вы можете добавить фиктивное обязательное поле и отфильтровать его.

Другие вопросы по тегам