0

Ok。

コア データ スタックによって設定された複数のオブジェクトを含む配列があります。各オブジェクトに名前、開始日、終了日、および金額属性が関連付けられているとします。

私がする必要があるのは、NSString である名前に基づいて、この配列を (値だけでなく) 一意のオブジェクトのみに減らすことです。

for ループ内、while ループ内、およびセットを使用して isEqual メソッドを試しましたが、理解できないようです。

何か案は?


更新:もっと明確にする必要があります。基本的に私がやりたいことは、既存の配列を取得し、同じ属性値を持つ重複オブジェクトを削除して、一意のオブジェクトの配列になることです。

4

4 に答える 4

0

自分の質問に答える場合は、少なくとも同じ問題を抱えている他の人を助けるためのコードを投稿してください。それは彼らにも役立つ解決策かもしれません。あなたが他の人にコードを投稿したりあなたを助けたりするように頼んでいるなら、それが双方向の道であることを理解してください

于 2011-12-08T13:43:35.403 に答える
0

どうでも。ifステートメントのクレイジーなグループを使用してそれを理解しましたが、それを行うのに最も効率的な方法ではないかもしれませんが、必要な結果が得られました。

于 2010-08-31T22:26:22.820 に答える
0
  1. オブジェクトを にフェッチしますNSArray
  2. を作成しますNSMutableDictionary
  3. 配列を反復処理します。
  4. ディクショナリでキーとして使用されている属性がすでに配置されているかどうかを確認しますcontinue
  5. そうでない場合は、辞書に追加します
  6. ループが完了したら-allValues、辞書を呼び出します。

これで、その属性で一意のオブジェクトの配列ができました。

于 2010-09-01T01:12:51.843 に答える
0
  1. 述語なしですべてのオブジェクトのフェッチを実行します - 結果は、同じ名前の文字列を持つ倍数を含む可能性のある配列です
  2. 配列を反復処理して、文字列の新しい配列を作成します (各エンティティの名前文字列をコピーします)
  3. その配列をセットに変換します-定義により、一意の名前のみが含まれます
  4. セット内の任意の名前に対して述語 "name = %@" を使用してフェッチを実行することにより、必要に応じてコア データ エンティティにアクセスします (または、使いやすいようにセットを配列に戻します)。
于 2010-08-31T07:17:03.213 に答える