美文网首页
IOS-A-Z通讯录

IOS-A-Z通讯录

作者: 温学振 | 来源:发表于2017-10-09 12:16 被阅读18次

    介绍步骤

    1需要创建NSArray数组A(用于排序)和NSMutableArray数组B(用于数据处理)

    2从服务器获取带有名字的字典,字典转模型 模型转可变数组 目的是把获取的数据通过模型的方式存储

    3处理可变数组(无序-->有序)遍历可变数组里的每个模型,取出名字,汉字转拼音,得到有序字典

    4根据升降排序比较字典里的每个元素(之前已转成拼音的)

    上代码

    1 创建数组

    self.addressBookArray= [NSMutableArray array];
    
    self.dataArray= [[NSArray array];
    

    2 字典转模型 模型转存于可变数组

    
    AddressBookModel*model = [AddressBookModel mj_objectWithKeyValues:dict];
    
    [self.addressBookArray addObject:model];
    
    }
    

    3 处理可变数组

    
    NSMutableDictionary*dict = [NSMutableDictionarydictionary];
    
    //遍历
    
    for(AddressBookModel*modelinstrArray) {
    
    //取出名字
    
    NSString*nicknameStr = [NSStringstringWithFormat:@"%@", model.nickname];
    
    HCLog(@"nicknameStr%@",nicknameStr);
    
    if([nicknameStrlength]) {
    
    NSMutableString*mutableStr = [[NSMutableStringalloc]initWithString:nicknameStr];
    
    //汉字转拼音 因为我们是根据A-Z排序
    
    if(CFStringTransform((__bridgeCFMutableStringRef)mutableStr,0,kCFStringTransformMandarinLatin,NO)) {
    
    }
    
    if(CFStringTransform((__bridgeCFMutableStringRef)mutableStr,0,kCFStringTransformStripDiacritics,NO)) {
    
    NSString*str= [NSStringstringWithString:mutableStr];
    
    str= [struppercaseString];
    
    NSMutableArray*subArray = [dictobjectForKey:[strsubstringToIndex:1]];
    
    if(!subArray) {
    
    subArray = [NSMutableArrayarray];
    
    //写入字典
    
    [dictsetObject:subArrayforKey:[strsubstringToIndex:1]];}
    
    [subArrayaddObject:model];}}}
    
    return dict;
    
    }
    

    4 数组A的排序

    
    NSString*letter1 = obj1;
    
    NSString*letter2 = obj2;
    
    if(NSSTRING_ISEMPTY(letter2)) {//降
    
    return NSOrderedDescending;
    
    }else if([letter1 characterAtIndex:0] < [letter2 characterAtIndex:0]) {//升
    
    return NSOrderedAscending;}
    
    return NSOrderedDescending;}];
    

    至此 打印出来的_dataArray就是A-Z排序的 步骤3里返回值dict就是每一个字母内所有的名字了(如 A:A1,A2)

    相关文章

      网友评论

          本文标题:IOS-A-Z通讯录

          本文链接:https://www.haomeiwen.com/subject/cvnuyxtx.html