Предикат NSPredicateWithFormat, передающий имя атрибута

Простой вопрос относительно NSPredicate. Я пытаюсь построить свой предикат с такими значениями «пройденный»:

NSPredicate* currentPredicate = [NSPredicate predicateWithFormat:@"%@ == %@",key,[changesDict valueForKey:@"Id"] ]; 

Однако я не смог заставить это работать правильно. Если я вставляю фактическое значение, которое я пропускаю, он работает. Итак, это работает:

 NSPredicate* currentPredicate = [NSPredicate predicateWithFormat:@"contactId == %@",[changesDict valueForKey:@"Id"] ]; 

(Обратите внимание, что я вставил contactId в отличие от предыдущего примера, когда я передаю строку с тем же именем)

Чтобы устранить неполадки, я NSLogged два предиката смотрел на их описания, и они были разными. Я покажу их ниже.

Это рабочий

 2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] contactId == "5878" 

Это не работает

 2013-01-17 10:29:25.513 TestingCoreData[1776:3b03] "contactId" == "5878" 

Поэтому я могу видеть, что он вставляет строку, где мне действительно просто нужно имя атрибута, который позже я буду использовать в запросе выборки. Но есть ли способ сделать это, передавая ценности?

One Solution collect form web for “Предикат NSPredicateWithFormat, передающий имя атрибута”

Для ключей или ключевых путей вы должны использовать формат %K :

 [NSPredicate predicateWithFormat:@"%K == %@", key, [changesDict valueForKey:@"Id"]]; 

(См. Основы Parser в «Руководстве по программированию предикатов».)

  • NSPredicate для свойства объекта в NSArray NSArray
  • Основные данные: выборка абстрактного объекта и фильтра по унаследованным связям
  • NSPredicate для фильтрации Получение результатов
  • predicateWithBlock как предикат для ABPeoplePicker.predicateForEnablingPerson вызывает исключение
  • NSPredicate на NSArray для поиска любого объекта
  • Результаты фильтра Core Core по массиву IN
  • NSPredicate не фильтрует по желанию
  • Найти значения в NSArray с NSArray с помощью NSString с использованием NSPredicate iOS
  • NSPredicate crash on CONTAINS?
  • NSPredicate с использованием RLMResults в качестве аргумента
  • Отношение пересечения NSPredicate (StackMob)
  • Interesting Posts

    iOS SDWebImage исчезает на новом изображении

    Использование UITableView внутри представления контейнера для форм – как мне получить доступ к полям формы?

    показать кнопку при получении ответа json, равную строке, например @ "unapproved"

    Уровень громкости звука iOS не соответствует изменению громкости или отключению звука

    UIPageViewController и UIPageControl прозрачный цвет фона – iOS

    Добавление обратного вызова к функции класса в swift

    Цвет заголовка UIButton по умолчанию iOS7

    Загрузка изображения на сервер через imagepicker не работает (требуется решение)

    Как увеличить карту с помощью Swift до заданного радиуса в километрах?

    Xcode не может найти раму Bolts, даже если есть

    NSNotificationCenter вызывает несколько раз

    Библиотека календаря iOS 7 для функции просмотра всего года

    iOS 8.1 Симулятор Локализация сломана (NSLocalizedString)

    Почему инструкция UPDATE работает с initWithFormat и NOT с помощью stringWithFormat?

    Swift: не удалось присвоить значение типа «UITableViewCell» в пользовательский класс ячейки

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.