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”分配了一个键,并以此对其进行排序。因此,您将分配一个“名称”键并使用下面的代码

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