2

UITableViewに表示するためにデータのフェッチを行っていますが、フェッチを行いますが、作成日または任意のソート方法でソートしたいと考えています。

メソッドは次のとおりです。

-(NSArray *) lesStations {

NSManagedObjectContext *moc = [[AppDelegate sharedAppDelegate]managedObjectContext];

NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
NSEntityDescription *entity =  [NSEntityDescription entityForName:@"Station" inManagedObjectContext:moc];

[fetch setEntity:entity];
NSError *error;

NSArray *result = [moc executeFetchRequest:fetch error:&error];

if (!result) {
    return nil;
}

return result;

}
4

3 に答える 3

5

これはうまくいくはずです

-(NSArray *) lesStations {

    NSManagedObjectContext *moc = [[AppDelegate sharedAppDelegate]managedObjectContext];

    NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity =  [NSEntityDescription entityForName:@"Station" inManagedObjectContext:moc];

    [fetch setEntity:entity];
    NSError *error;

    NSArray *result = [moc executeFetchRequest:fetch error:&error];

    if (!result) {
        return nil;
    }

    NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:"creationDate" ascending:YES];



    NSArray *sortedResults = [result sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];

    [sort release];

    return sortedResults;

}
于 2012-06-15T14:17:18.147 に答える
3

2 つのオプションがあります: 結果を並べ替えるか、結果を並べ替える: のいずれかNSArrayを設定
NSFetchRequestできますNSArrayNSSortDescriptor

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"place" ascending:NO]; //the key is the attribute you want to sort by
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

返されたものを並べ替えることもできます( で始まるNSArrayすべてのインスタンス メソッドを参照してください) 。CoreData を操作する場合は、最初の方法を使用することをお勧めします。2番目のものは、配列を操作するときに有益です...NSArraysortedArray...

于 2012-06-15T14:08:33.453 に答える
0

fetch に sortDescriptors を設定することで、fetch の結果を並べ替えることができます。

fetch.sortDescriptors = [NSArray arrayWithObjects:[[NSSortDescriptor alloc] initWithKey: ascending: selector:], nil];
NSError *error;
NSArray *result = [moc executeFetchRequest:fetch error:&error];
于 2012-06-15T14:05:48.140 に答える