сравнение объектов в NSSet с объектами в NSArray - PullRequest
3 голосов
/ 03 ноября 2010

Я некоторое время размышлял над этой проблемой, но пока не могу найти хорошее и лаконичное эффективное решение.

Проблема:

У меня есть список рецептов, которыйNSArray, каждый объект рецепта содержит ингредиенты как объекты NSSet.Данные связаны между собой и основаны на coredata.Теперь есть еще один список NSArray, который содержит элементы (ингредиенты), которые есть у конкретного человека в настоящее время.

Теперь мне нужно как-то сравнить имеющиеся в настоящее время элементы, которые есть у пользователя, с ингредиентами в рецептах и ​​рекомендовать рецепты пользователей в виде таблицыв таких разделах, как все присутствующие элементы, 1 элемент отсутствует, два элемента отсутствует и три элемента отсутствуют.

Как вы, ребята, думаете, что я должен подойти к этой проблеме.Я перепробовал несколько вещей, но в итоге каждый раз теряюсь.

Любая помощь / указатели будут высоко оценены

1 Ответ

5 голосов
/ 03 ноября 2010

У вас есть интересные методы в NSSet:

  • + (id)setWithArray:(NSArray *)array позволит вам быстро преобразовать ваш массив в набор.

  • - (BOOL)isSubsetOfSet:(NSSet *)otherSet позволит вам найти возможные рецепты.

  • - (BOOL)intersectsSet:(NSSet *)otherSet позволит вам найти рецепты хотя бы с одним подходящим ингредиентом.

  • - (NSSet *)objectsPassingTest:(BOOL (^)(id obj, BOOL *stop))predicate может позволить вам найти соответствующее количество ингредиентов с правильным предикатом, что-то вроде «есть ли объект в моем массиве?»

...