2

ここでの問題は、coredataを使用している間、順序/優先度を維持するためにリンクリストを作成するのが良い選択であるか、または単純な変数を使用して優先度を数値として維持する必要があるということです。

新しいオブジェクトがN/2の位置にあるN個のオブジェクトの配列に挿入された場合、数値を維持しながら、N / 2 + 1-> N / 2のオブジェクトのすべての優先度の値を変更する必要があります。その結果、その数が多くなります。私が間違っていなければ、SQLはクエリを実行します。

リンクリストがある場合は、そのエンティティとの自己関係を維持して「次へ」と言うことができます。オブジェクトがN/2の位置に挿入された場合、次の2つのクエリがあります。1。N / 2-1-> next-> newObj 2. newObj-> next-> N / 2 + 1しかし、ここに問題があります。この関係を使用してフェッチされた結果をソートできないNSFetchedResultsControllerを使用していますか、それとも何らかの方法でソートできますか?

上記の状況に関連して、2つの手法のどちらが優れているかを回答してください。

4

1 に答える 1

2

最善の解決策は、順序付けられた多対数の関係を使用することです。これは、NSOrderedSet配列のように順序を維持するだけでなく、セットのような高速メンバーシップテストもサポートするを使用します。ただし、これはiOS5.0またはMacOSX10.7以降でのみ使用できます。

以前のバージョンのiOSをサポートする必要がある場合は、注文用に追加のプロパティを使用するアプローチを選択しました。これにより、フェッチがはるかに簡単になります。リンクリスト構造の方が更新しやすいかもしれませんが、通常は(データを表示するための)フェッチがはるかに頻繁に行われるため、これがより簡単な場合です。

注文を頻繁に更新する必要がある場合は、注文番号の間に大きなギャップを残すことができます。

于 2012-08-22T19:15:11.153 に答える