Я пытаюсь извлечь объекты из данных ядра, которых нет в данном наборе, но я не смог заставить их работать.
Например, предположим, что у нас есть данные ядрасущность с именем User, которая имеет несколько атрибутов, таких как userName, familyName, GivenName и active.Учитывая массив строк, представляющих набор имен пользователей, мы можем легко выбрать всех пользователей, соответствующих этому списку имен пользователей:
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"User"
inManagedObjectContext:moc];
[request setEntity:entity];
NSArray *userNames = [NSArray arrayWithObjects:@"user1", @"user2", @"user3", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userName IN %@", userNames];
[request setPredicate:predicate];
NSArray *users = [moc executeFetchRequest:request error:nil];
Однако я хочу получить дополнение этого набора, т.е. я хочувсе пользователи в основных данных, которые не имеют имен пользователей, указанных в массиве userNames.У кого-нибудь есть идеи как подойти к этому вопросу?Я думал, что было бы достаточно просто добавить "NOT"
в предикат (i.e., "userName NOT IN %@")
, но XCode выдает исключение, говорящее о том, что формат предиката не может быть проанализирован.Я также безуспешно пытался использовать построитель предикатов, доступный для запросов на выборку.Документация также не была особенно полезной.Предложения?Комментарии?Спасибо за вашу помощь:)