3

私はしばらくの間この問題について熟考してきましたが、私はまだ素晴らしい簡潔で効率的な解決策を得ることができません。

問題:

NSArrayであるレシピリストがあります。すべてのレシピオブジェクトには、NSSetオブジェクトとして材料が含まれています。データは1対多の関係であり、coredataから取得されます。ここで、特定の人が現在持っているアイテム(成分)を含むNSArrayの別のリストがあります。

ここで、ユーザーが現在持っているアイテムをレシピの材料と比較し、すべてのアイテムが存在する、1つのアイテムが欠落している、2つのアイテムが欠落している、3つのアイテムが欠落しているなどのセクションを含むテーブルビューでユーザーレシピを推奨する必要があります。

私がこの問題に取り組むべきだとどう思いますか。私はいくつかのことを試しましたが、毎回さらに迷子になってしまいます。

ヘルプ/ポインタは高く評価されます

4

1 に答える 1

5

NSSet には興味深いメソッドがあります。

  • + (id)setWithArray:(NSArray *)array配列をセットにすばやく変換できます。

  • - (BOOL)isSubsetOfSet:(NSSet *)otherSet可能なレシピを見つけることができます。

  • - (BOOL)intersectsSet:(NSSet *)otherSetを使用すると、少なくとも 1 つの一致する材料を含むレシピを見つけることができます。

  • - (NSSet *)objectsPassingTest:(BOOL (^)(id obj, BOOL *stop))predicate「is object in my array?」のような適切な述語を使用して、一致する成分数を見つけることができます。

于 2010-11-03T15:48:16.447 に答える