述語は、timeStamp が someDay 以上のエンティティに結果セットを制限します。
ソート記述子は、どのレコードを取得する必要があるかをフェッチ要求に通知し、指定された順序で実際にソート/表示します。
取得制限により、返されるエンティティは 100 個までです。
1000 件の一致があり、sortAscending が YES の場合、timeStamp より新しい最も古いレコードが返され、次に 2 番目に古いレコードが続きます。sortAscending が NO の場合、timeStamp よりも新しいレコードが返され、次に 2 番目に新しいレコードが返され、timeStamp よりも新しい最も古いレコードに向かって移動します (存在する場合は、100 番目に古いレコードに到達するまで)。
UIableViews と NSFetchedResultsControllers は非常に自然に連携します。NSIndexPaths の処理方法をわざわざ変更しない限り、フェッチされた結果コントローラーでバックアップされたテーブル ビューがある場合、基本的に順序付け、セクション、および挿入/削除アクションが渡されます。このような場合、結果セットを並べ替えようとする必要はありません。必要なもの、量、順序を CoreData に伝えれば、それが得られます。
期待どおりの結果を得るには (私が知る限り)、レコードを実際にどのように並べ替えるかを反映するように並べ替え記述子を変更するだけです。この場合、昇順を YES に設定すると、次のようになります。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"timeStamp >= %@",someDate];
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:descriptor];
request.fetchLimit = 100;
そして、それはそれを行う必要があります。この場合、セットを逆順にする必要はありません。