используя NSPredicate с набором ответов - PullRequest
6 голосов
/ 11 декабря 2010

У меня есть набор строк, содержащих personIDs, и у меня есть NSFetchedResults управляемых объектов с уникальными strPersonID.Я пытался создать NSPredicate, но это не удалось.Любая помощь с этим будет принята с благодарностью.Я немного новичок в NSPredicate, так что будьте добры.

NSSet *zipSet = [NSSet setWithSet:[self getziplist:searchText]];
searchString = [NSString stringWithFormat:@"(strPersonID IN %@)",zipSet];
NSPredicate *searchPersonPredicate = [NSPredicate predicateWithFormat:searchString];

Сообщение об ошибке времени выполнения: Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Невозможно проанализировать строку формата» (strPersonID IN{(300040, 300082, 412218)}) "'

1 Ответ

6 голосов
/ 11 декабря 2010

Не интерполируйте zipSet в строку, интерполируйте ее в предикат:

NSSet *zipSet = [NSSet setWithSet:[self getziplist:searchText]];
NSPredicate *searchPersonPredicate = [NSPredicate predicateWithFormat:@"strPersonID IN %@",zipSet];

Если вы интерполируете NSSet в строку, он не будет иметь правильный формат (NSString использует -description, который использует старый формат списка свойств NextStep ).

...