}
接下来我们需要进行排序:
规则如下:
1.首先按照年龄排序
2.如果年龄相同按照分数排序
那么我们需要创建排序描述者,一个描述着只能对一个属性进行描述 如果需要描述多个 我们需要创建多个描述者
我们这里的需求就需要创建两个描述者 一个是对年龄描述 一个是对分数描述 代码如下:
NSSortDescriptor *ageSD = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];//ascending:YES 代表升序 如果为NO 代表降序 NSSortDescriptor *scoreSD=[NSSortDescriptor sortDescriptorWithKey:@"score" ascending:YES];创建好这两个描述者之后 我们就可以调用数组的 sortedArrayUsingDescriptors 方法来实现排序
sortedArrayUsingDescriptors方法接收一个数组的参数 里面放描述者 然后他会返回一个排序好的数组 所以我们这样做:
self.datas = [[self.datas sortedArrayUsingDescriptors:@[ageSD,scoreSD]] mutableCopy];我们点击导航栏左边的排序按钮的时候 会执行以下操作:
- (IBAction)sortAge:(id)sender { NSSortDescriptor *ageSD = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES]; NSSortDescriptor *scoreSD=[NSSortDescriptor sortDescriptorWithKey:@"score" ascending:YES]; self.datas = [[self.datas sortedArrayUsingDescriptors:@[ageSD,scoreSD]] mutableCopy]; //[self.datas sortUsingDescriptors:@[ageSD,scoreSD]] 可能也可以 [self.tableView reloadData]; } http://www.cnblogs.com/syios/p/5918868.html