3

我一直在思考这个问题一段时间,但我还不能得到一个简洁有效的解决方案。

问题:

我有一个食谱列表,它是一个 NSArray,每个食谱对象都包含作为 NSSet 对象的成分。数据是一对多的关系,并且来自 coredata。现在还有一个 NSArray 列表,其中包含特定人当前拥有的项目(成分)。

现在,我必须以某种方式将用户当前拥有的项目与食谱中的成分进行比较,并在表格视图中推荐用户食谱,其中包含所有项目、1 项缺失、2 项缺失和 3 项缺失等部分。

你们认为我应该如何解决这个问题。我尝试了一些事情,但每次我最终都会迷失更多。

任何帮助/指针将不胜感激

4

1 回答 1

5

您在 NSSet 中有一些有趣的方法:

  • + (id)setWithArray:(NSArray *)array将允许您快速将数组转换为设置。

  • - (BOOL)isSubsetOfSet:(NSSet *)otherSet将允许您找到可能的食谱。

  • - (BOOL)intersectsSet:(NSSet *)otherSet将允许您找到具有至少一种匹配成分的食谱。

  • - (NSSet *)objectsPassingTest:(BOOL (^)(id obj, BOOL *stop))predicate可以让您使用适当的谓词找到匹配的成分计数,例如“我的数组中是否有对象?”

于 2010-11-03T15:48:16.447 回答