Я пытаюсь создать функцию, которая просматривает мой основной стек данных и возвращает количество сообщений для желаемого ключа/значения.NSPredicate с динамическим ключом и значением
Вот мой код:
NSFetchRequest *messagesCountRequest = [NSFetchRequest fetchRequestWithEntityName:@"Message"];
NSEntityDescription *messageCountModel = [NSEntityDescription entityForName:@"Message" inManagedObjectContext:_mainManagedObjectContext];
[messagesCountRequest setEntity:messageCountModel];
NSPredicate *messageCountPredicate = [NSPredicate predicateWithFormat:@"%@ == %@", key, value];
[messagesCountRequest setPredicate:messageCountPredicate];
count = (int)[_mainManagedObjectContext countForFetchRequest:messagesCountRequest error:nil];
Проблема заключается в том, что она возвращает 0 каждый раз. Я нашел источник проблемы. Когда есть статический ключ, предикат выглядит так.
key == "value"
Когда я прохожу через динамический ключ, это выглядит
"key" == "value"
Таким образом, проблема, как представляется, первый набор двойных кавычек вокруг ключа, который помещается пропусканием NSString к сказуемое. Как я могу это исправить?
EDIT: Для ясности мне нужно, чтобы он был как первый случай, который работает.
+1 Я никогда не знал об этом, и это на самом деле устраняет проблему, у меня был другой день, пытаясь сделать именно это. Спасибо: D – Fogmeister
Ты спас мой день. благодаря – Mashhadi