首页 > 解决方案 > UItableview在内容中加载缓慢的ios

问题描述

我有一个应用程序,我在其中过滤重复的联系人我已经实现了该功能,但问题是它对于少数联系人来说很快,因为联系人更多,加载也变得很慢。下面是我正在使用的代码块

-(void)loadDuplicateContacts{


    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        [addressBook loadContacts:^(NSArray<APContact *> * _Nullable contacts, NSError * _Nullable error) {

            NSMutableArray *duplucateDataArray = [[NSMutableArray alloc] init];
            duplucateDataArray = [contacts mutableCopy];
            duplicateContactsArray = [[NSMutableArray alloc] init];
            duplicateContactsDictinary = [[NSMutableDictionary alloc] init];
            self.dictionaryKeys = [NSArray new];
            for (APContact *contact in duplucateDataArray) {
                NSMutableArray *countArray = [[NSMutableArray alloc] init];
                [duplucateDataArray enumerateObjectsUsingBlock:^(APContact *obj, NSUInteger idx, BOOL *stop)
                 {

                     if ([JustNumber([obj.phones[0] number]) isEqualToString:JustNumber([contact.phones[0] number])])
                     {

                         [countArray addObject:contact.name.compositeName];

                     }
                 }];

                if (countArray.count > 1) {

                    if (duplicateContactsDictinary[JustNumber([contact.phones[0] number])]) {
                        NSMutableArray  *retriveArray = [[NSMutableArray alloc] init];
                        retriveArray = [duplicateContactsDictinary objectForKey:JustNumber([contact.phones[0] number])];
                        [retriveArray addObject:contact];
                        [duplicateContactsDictinary setObject:retriveArray forKey:JustNumber([contact.phones[0] number])];

                    }else{
                        NSMutableArray *contactCreationArray = [[NSMutableArray alloc] init];
                        [contactCreationArray addObject:contact];
                        [duplicateContactsDictinary setObject:contactCreationArray forKey:JustNumber([contact.phones[0] number])];

                    }
                    [duplicateContactsArray addObject:contact];

                }

            }

            dispatch_async(dispatch_get_main_queue(), ^(void) {
                [self.tableView reloadData];
            });

        }];
    });

}

任何建议都会更有帮助

标签: iosobjective-cuitableviewcontacts

解决方案


推荐阅读