从核心数据中提取数据时,我们如何在ios中根据距离和名称进行排序



我正在使用Restkit从数据库中检索数据数组。我希望数组根据参数距离按升序排序。问题是,如果数组包含两个或多个具有相同距离的条目,则必须根据其名称的升序依次进行排序。我目前正在使用NSSortDescriptor

RKManagedObjectStore *managedObjectStore      = [[[VBRestKit sharedDataManager]objectManager] managedObjectStore];
NSManagedObjectContext *managedObjectContext  = managedObjectStore.persistentStoreManagedObjectContext;
NSFetchRequest *fetchRequest        = [[NSFetchRequest alloc] init];
NSEntityDescription *entity         = [NSEntityDescription
                                       entityForName:@"VBDeals" inManagedObjectContext:managedObjectContext];
NSSortDescriptor *sortById = [[NSSortDescriptor alloc] initWithKey:@"distance" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortById]];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *fetchedObjects             = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

VBResponseWrapper *responseWrapper = [[VBResponseWrapper alloc]init];
responseWrapper.responseObject = [NSMutableArray arrayWithArray:fetchedObjects];
return responseWrapper;

您可以添加另一个排序描述符:

NSSortDescriptor *sortById = [[NSSortDescriptor alloc] initWithKey:@"distance" ascending:YES];
NSSortDescriptor *sortByName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortById, sortByName, nil]];

只需确保更改密钥(名称)以匹配您的数据即可。希望得到帮助。

最新更新