NSP предикаты с пользовательскими объектами - PullRequest
0 голосов
/ 06 апреля 2010

У меня есть следующая проблема, и я не могу понять, как ее решить. У меня есть NSSet, который содержит объекты Person (NSDictionary с 2 ключами: имя, возраст). Время от времени я получаю объекты NSArray of Person и хочу добавить их в свой NSSet, но хочу отфильтровать дубликаты. Я думаю, что мог бы использовать NSPredicates, но я читаю документацию и не могу понять, как мне отформатировать NSPredicate, чтобы отфильтровать содержимое моего массива на основе того, что у меня уже есть в NSSet.

Итак, у меня есть NSSet с 5 пользовательскими объектами, и я получаю NSArray с 6 объектами, но 3 из них уже существуют в NSSet, и я хочу отфильтровать их. Я понимаю, что мне следует делать с базовыми объектами, такими как строки, целые числа и т. Д., Но я не знаю, как расширить это для работы с пользовательскими более сложными объектами.

Надеюсь, я достаточно ясно со своей проблемой. Любая отправная точка, пример или совет очень ценятся.

Спасибо!

1 Ответ

0 голосов
/ 06 апреля 2010

Если у вас уже есть изменяемый набор, вам не нужно делать ничего особенного. Если вы получите тот же экземпляр Person в будущем, addObject: просто проигнорирует его. Если у вас есть другое значение «равенство», а не просто то, являются ли два объекта одним и тем же экземпляром, тогда вам придется иметь дело с этим самостоятельно, но если ваш новый объект возвращает YES для isEqual: тогда addObject: уже будет игнорировать его также, когда вы поместите это в набор.

...