Когда мне нужно было это сделать, я сделал это, выбрав все, чего не было в новом наборе входящих данных, и удалив все в результате выборки.Это работает, только если у вас есть какой-то уникальный идентификатор - если ваши A
, B
и C
являются уникальными идентификаторами, которые не имеют дубликатов.
Код будет выглядеть примерно так:
Сначала получите все уникальные идентификаторы, найденные в новых входящих данных.Если входящие объекты находятся в массиве с именем restResults
, это будет что-то вроде
NSArray *incomingUniqueIDs = [restResults valueForKey:@"uniqueID"];
Выполнить запрос выборки с предикатом, который находит все с уникальным идентификатором, который не в новом списке.Что-то вроде
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"uniqueID not in %@", incomingUniqueIDs];
Затем выполните выборку и удалите все, что он найдет.В вашем случае, во второй раз, incomingUniqueIDs
будет содержать A
и C
.Предикат получит только B
.Вы удалите эту запись, и все будет готово.