核心数据:保存前排序

时间:2012-07-05 15:09:27

标签: iphone ios xcode ios5

我正在添加一个简单的实体,一个名称列表(来自一个数组)。 但在保存实体之前,我希望对它们进行排序。请有人这么好,告诉我该怎么做?

我已经看过如何对一些获取的数据进行排序,但我不知道如何做到这一点。一个书面的例子将不胜感激。 非常感谢。

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]);
}

2 个答案:

答案 0 :(得分: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]; 

这将有效

答案 1 :(得分:0)

修改

插入对象后,只需添加排序描述符

sortDescriptorWithKey在数组中查找键。在我创建的数组中,我为“createdDate”分配了一个键,并按此进行了排序。因此,您将指定一个“名称”键并使用下面的代码

NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[peoplesNames.theArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];