我正在添加一个简单的实体,一个名称列表(来自一个数组)。 但在保存实体之前,我希望对它们进行排序。请有人这么好,告诉我该怎么做?
我已经看过如何对一些获取的数据进行排序,但我不知道如何做到这一点。一个书面的例子将不胜感激。 非常感谢。
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]);
}
答案 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]];