CoreData を使用してデータを db に保存しました。保存されたのと同じ順序でテーブルからデータを取得する必要があります。テーブル内では、Z_PK (非表示の CoreData キー) で並べ替えられています。このようなソート記述子を作成するにはどうすればよいですか。ソート記述子なしでフェッチ要求を使用すると、データ オブジェクトの順序が間違っています。
質問する
3433 次
3 に答える
7
CoreDataフレームワークによって公開されていないものはすべて実装の詳細です。存在し、現在あなたの目的に合っているという事実はZ_PK
信頼できません。
作成/保存の順序がモデルにとって重要である場合は、それをモデルに含める必要があります。本当に他に何もありません。
于 2012-10-18T12:26:28.723 に答える
5
コア データ フレームワークには、オブジェクトを主キーで並べ替える適切な方法はありませんが、objectID を主キーとして使用し、objectID で並べ替えることができると思います。特定のオブジェクトのObjectIDは常に増加します..したがって、以下のメソッドを使用できます
/*!
@param <NSManagedObject> array
@return <NSManagedObject> sortedarray
*/
+ (NSArray *) sortManagedObjectArrayByObjectID:(NSArray *) array {
NSArray *compareResult = [array sortedArrayUsingComparator:^NSComparisonResult(NSManagedObject *obj1, NSManagedObject *obj2) {
NSString *s = [obj1.objectID.URIRepresentation lastPathComponent];
NSString *r = [obj2.objectID.URIRepresentation lastPathComponent];
return [s compare:r];
}];
return compareResult;
}
これが役立つことを願っています
于 2012-11-14T17:08:35.720 に答える
1
ソートキーとしてソート記述子を使用しself
ます。基礎となる SQL にはORDER BY t0.Z_PK
.
于 2018-10-18T19:49:00.883 に答える