通讯录排序(按首字母顺序)

来源:互联网 发布:java 线程是什么 编辑:程序博客网 时间:2024/05/17 22:58

效果:



1.使用

//模拟数据

-(void)loadData

{

    NSArray *dataArr = @[

                     @"比昂",@"阿狸",@"阿三",@"小明",@"张三",@"秋秋",@"波比",@"苏三",@"馒头",@"彩笔",@"咪咪",@"蔡芯",@"成龙",@"陈鑫",@"陈丹",@"成名",@"阿伟",@"阿姨",@"芳仔",@"房祖名",@"方大同",@"芳芳",@"范伟",@"郭靖",@"郭美美",@"过儿",@"过山车"

                     ];

    NSLog(@"原始数据 ==>> %@",dataArr);

    _MyData = [selfTransformation:dataArr];

    NSLog(@"数据转换 ==>> %@",_MyData);

    [self.MyTableViewreloadData];

    

}


2.核心代码 (排序)

- (NSMutableArray *)Transformation:(NSArray *)dataArray

{

    NSMutableArray *TwoArr = [NSMutableArrayarray];

    for (NSString *TransformationStrin dataArray)

    {

        NSMutableString *pinyin = [TransformationStrmutableCopy];

        CFStringTransform((__bridgeCFMutableStringRef)pinyin, NULL,kCFStringTransformMandarinLatin, NO);

        CFStringTransform((__bridgeCFMutableStringRef)pinyin, NULL,kCFStringTransformStripCombiningMarks, NO);

        [TwoArr addObject:pinyin];

    }

    NSMutableArray *ThreeArr = [NSMutableArrayarray];

    for (__strongNSString *ScreenStr in TwoArr)

    {

        ScreenStr = [ScreenStr substringToIndex:1];

        if (ThreeArr.count ==0)

        {

            [ThreeArr addObject:ScreenStr];

        }

        else

        {

            BOOL bl = [ThreeArrcontainsObject:ScreenStr];

            if (!bl)

            {

                [ThreeArr addObject:ScreenStr];

            }

        }

    }

    NSArray *FourArr = [ThreeArrsortedArrayUsingSelector:@selector(compare:)];

    NSMutableArray *MyArr = [NSMutableArrayarray];

    for (NSString *strin FourArr)

    {

        NSMutableDictionary *dic = [NSMutableDictionarydictionary];

        [dic setObject:str forKey:@"title"];

        NSMutableArray *arr = [NSMutableArrayarray];

        for (int i =0; i < TwoArr.count; i++)

        {

            NSString *missstr = TwoArr[i];

            missstr = [missstr substringToIndex:1];

            if ([str isEqualToString:missstr])

            {

                [arr addObject:dataArray[i]];

            }

        }

        [dic setObject:arr forKey:@"info"];

        [MyArr addObject:dic];

    }

    return MyArr;

}


Demo下载地址:通讯录自动排序

阅读全文
1 0