NSMutableSetとNSMutableArray
-
05-07-2019 - |
質問
違いは何ですか?
私のコンテキストでは、オブジェクトを動的に追加および削除できる必要があります。ユーザーは、オンとオフを切り替えるテーブルの行をクリックして、リストから参照オブジェクトを追加または削除します。
ワイルドな推測は、配列にはインデックスが付けられたアイテムがあり、セットにはインデックスがないということですか?
解決
NSSet
/ NSMutableSet
は、特定の順序でアイテムを保持しません。 NSArray
/ NSMutableArray
は、特定の順序でアイテムを保存します。テーブルビューを構築している場合は、必ず選択したデータソースとして配列を使用する必要があります。
他のヒント
また、NSMutableSetはすべてのオブジェクトが一意であることを確認します。
NSMutableArrayは、要素にインデックスがあるため、UITableViewに適しています。したがって、[array count]を返してテーブルの行数を取得するか、[array objectAtIndex:rowNumber]を返して要素を行に簡単に関連付けることができます。
また、ドキュメント、オブジェクトのメンバーシップのテストはNSSetsの方が高速です。
次の順序の場合、配列の代わりにセットを使用できます 要素は重要ではなく、オブジェクトが セットに含まれていることは考慮事項です—配列が順序付けられている間、 メンバーシップのテストはセットよりも遅くなります。
まあ、3つの主な違いがあります。 1)セットには順序がありません2)インデックス&がありません3)配列が順序付けられ、インデックスが付けられ、重複する値を持つことはできません。重複する値を保存できます。