2010-11-03 82 views
3

我一直在思考这个问题一段时间了,但我现在还无法获得一个很好的简洁有效的解决方案。将NSSet中的对象与NSArray中的对象进行比较

问题:

我有一个配方列表这是一个NSArray,每配方对象包含成份的NSSet对象。数据是一对多关系&来自coredata。 现在有另一个列表NSArray包含一个特定的人目前有物品(成分)。

现在我必须以某种方式比较当前目前的项目,哪些用户与食谱配料&建议在表视图中的用户食谱与所有项目存在,1项失踪,两项失踪和三项失踪部分。

你们是怎么想我应该解决这个问题的。 我已经尝试了几件事情,但最终每次都变得更加迷茫。

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

回答

5

你有NSSet中有趣的方法:

  • + (id)setWithArray:(NSArray *)array将允许您快速转换你的阵列设置。

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

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

  • - (NSSet *)objectsPassingTest:(BOOL (^)(id obj, BOOL *stop))predicate可以让你找到匹配的成分数,用适当的谓词,这就像'是我的数组中的对象?'。

相关问题