0

私はコアデータを使用しており、結果を正常に取得しています。コア データについていくつか質問があります。 1. レコードを追加すると、エンティティの末尾または先頭に追加されますか。2. 次のコードを使用してデータを取得しています。配列にはすべてのレコードが取り込まれています。しかし、レコードをエンティティに入力した順序と同じではありません。なぜ?デフォルトの並べ替えはどのような基準で使用されますか?

    NSFetchRequest* allLatest = [[NSFetchRequest alloc] init];
[allLatest setEntity:[NSEntityDescription entityForName:@"Latest" inManagedObjectContext:[self managedObjectContext]]];

NSError* error = nil;
NSArray* records = [managedObjectContext executeFetchRequest:allLatest error:&error];
[allLatest release];

3. レコードを入力する方法、1、2、3、4........しばらくすると、最初に入力したレコード (最も古いデータ) を削除したいと考えています。古い2つのレコードを削除するようなもの。どうやってするの?

4

2 に答える 2

4

配列の並べ替えは次のようになります。

NSSortDescriptor * describeor = [[[NSSortDescriptor alloc] initWithKey:@ "SortKey" ascending:YES] autorelease];
NSArray * sortedList = [recordssortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor、nil]];

initWithKey:引数は、並べ替えるプロパティです。並べ替えるキーが複数ある場合は、それらをリストとしてsortedArrayUsingDescriptors:引数に追加できます。リストは最初の記述子でソートされ、次に各グループが次の記述子でソートされます。

-ダン

于 2010-05-10T14:42:13.587 に答える
3

注文はいかなる方法でも保証されません。順序を気にする場合は、エンティティに属性を含め (たとえば、「sequenceNumber」と呼びます)、NSFetchRequest の並べ替え記述子でそれを使用する必要があります。

于 2010-05-10T14:01:53.287 に答える