关于iOS通讯录分组排序方式

 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;

}

你可能感兴趣的:(关于iOS通讯录分组排序方式)