iOS排序优化。
1.当按某个字段排序时。 我们可以按字段名字当key存入数据
2.key 一个组
3.key + value 一个字典
4.把 key 按某种方式排序
5.根据key 取出数据(model)
应用: 手机通讯录。 微信 我的圈子 等。
以某个字段为分组 但模型没有给你分组 的优化解决方案
- (NSDictionary *)contactsWithGroup
{
for(id item in _myContacts)
{
Contact *people = [Contact contactWithItem:item];
NSString *nameInEnglish = [ContactManager phonetic:people.name];
nameInEnglish = [nameInEnglish capitalizedString];
unichar k = [nameInEnglish characterAtIndex:0];
if (!(k >= 'A' && k <= 'Z')) {
k = '#';
}
NSString *key = [NSString stringWithFormat:@"%c",k];
NSMutableArray *arrayGroupK = [self.contactsDic objectForKey:key];
if (!arrayGroupK) {
arrayGroupK = [[NSMutableArray alloc]initWithCapacity:5];
[arrayGroupK addObject:people];
if (nil == self.contactsDic) {
self.contactsDic = [[NSMutableDictionary alloc]initWithCapacity:5];
}
[self.contactsDic setObject:arrayGroupK forKey:key];
}else{
[arrayGroupK addObject:people];
}
}
return self.contactsDic;
}