2009-09-17 12 views
10

NSSetの内容を表示するにはどうすればよいですか?NSSetをUITableViewに表示するにはどうすればいいですか?

あなたが知っているように、テーブルビューは特定の行の要素を要求しますが、NSSet要素は順序付けされていないため、これはうまく組み合わせません。

私の現在の解決策は、指定されたインデックスの要素に到達するまでNSSetを反復することですが、実際にはこれは正しくはありません。

代わりにNSArrayを使用しない理由を尋ねることがあります。これは、要素のコレクションを格納するためにNSSetを使用するCore Dataを使用しているためです。

ご協力いただければ幸いです。

答えて

28

あなたは要素を表示しているだけなので、NSSetを持って-[allObjects]と呼んでNSArrayになるのはなぜですか?

データが変更された場合は、とにかくNSSetで再フェッチする必要があります。NSSetからの最初の変換を除いて、配列の使用はかなり高速です。

+2

私はあなたの答えを読んだのでとても馬鹿だと感じています;) –

+7

「allObjects」を2回連続して呼び出すと、同じ順序(NSSetが変更されていない場合)の要素が返されると、文書では「注文は定義されていない」としか書かれていないため、注文が安定しているとは言いません。それが今安定しているなら、将来のiOSバージョンで安定していると確信していますか?私は、テーブルビューで表示できる要素を得るためにこの関数に頼っているのかどうかはわかりません。 –

+0

@ChristopheFondacciは 'allObjects'を一度呼び出すだけで、VCが終了するまで、またはそのセットが再び変更されるまで、結果を変数に格納します。 –

関連する問題