1

単純なエンティティ、名前のリスト (配列から) に追加しています。しかし、エンティティを保存する前に、それらをソートしたいと思います。誰かが私にこれを行う方法を教えてくれるほど親切でしょうか?

取得したデータをソートする方法を見てきましたが、これを行う方法がわかりません。書かれた例は大歓迎です。どうもありがとう。

NSManagedObjectContext *context = [self managedObjectContext];
NSString *myTempString;

for (databaseMakerVC *aName in peoplesNames.theArray) {
    myTempString = [[NSString alloc] initWithFormat:@"%@", aName];

    peoplesNamesObject *newObject = [NSEntityDescription
                                     insertNewObjectForEntityForName:@"peoplesNamesObject"
                                     inManagedObjectContext:context];
    newObject.aName = myTempString;
}


    // *** Do the sorting here!? ***


// Save the context
NSError *error = nil;
if (![context save:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
4

2 に答える 2

2
 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription 
                                   entityForName:@"peoplesNamesObject" inManagedObjectContext:context];

 [fetchRequest setEntity:entity];


     NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"aName" ascending:YES]; 

        NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 

        [fetchRequest setSortDescriptors:sortDescriptors]; 

        NSError *error;


       NSArray *array=[context executeFetchRequest:fetchRequest error:&error]; 

これはうまくいきます

于 2012-07-10T07:55:28.413 に答える
0

編集

オブジェクトを挿入した後にソート記述子を追加するだけです

sortDescriptorWithKeyは配列内のキーを探します。私が作成した配列で、「createdDate」にキーを割り当て、それでソートしました。したがって、「name」のキーを割り当て、以下のコードを使用します

NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[peoplesNames.theArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];
于 2012-07-05T15:31:21.920 に答える