我正在使用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]];
只需确保更改密钥(名称)以匹配您的数据即可。希望得到帮助。