NSFetchRequest вызывает NSInvalidArgumentException, когда запрос содержит апостроф - PullRequest
1 голос
/ 19 сентября 2011

Когда я создаю запрос, содержащий апостроф, я получаю сообщение об ошибке:

«NSInvalidArgumentException», причина: «Невозможно проанализировать формат строка "SELF.sale.ID == 0 AND ((SELF.dam содержит [cd] 'Michael's') ИЛИ (SELF.name содержит [cd] 'Michael's') ИЛИ (SELF.purchaserLocation содержит [cd] 'Michael's') ИЛИ (SELF.purchaserName содержит [cd] 'Michael's') OR (SELF.sire содержит [cd] 'Michael's') OR (SELF.vendor содержит [cd] 'Michael's')) "'

Я пытался заменить один апостроф двумя апострофами, но все равно получил ту же ошибку. Когда запрос не содержит апострофа, все идет хорошо. Спасибо

Ответы [ 3 ]

0 голосов
/ 20 июня 2012

На самом деле вот реальное решение: Ошибка экранирования одинарных кавычек в iOS с помощью stringByReplacingOccurferencesOfString: widthString

Вам нужно поставить 2 \, потому что \ - это символ, ипоэтому нужно бежать к.

0 голосов
/ 12 марта 2013

Это может произойти, если вы поместите заполнители формата в строке формата в одинарные кавычки при использовании [NSPredicate precateateWithFormat]. Эти цитаты не нужны.

НЕПРАВИЛЬНЫЙ Пример:

NSPredicate *myPred = [NSPredicate predicateWithFormat:@"name = '%@'";

ПРАВИЛЬНЫЙ Пример:

NSPredicate *myPred = [NSPredicate predicateWithFormat:@"name = %@";
0 голосов
/ 19 сентября 2011

Плохо, мне нужно заменить один апостроф на управляющую строку \ '

...