UItableview загрузка внутри контента медленно IOS - PullRequest
0 голосов
/ 12 июня 2019

У меня есть приложение, в котором я отфильтровываю дублирующиеся контакты. Я достиг функциональности, но проблема в том, что это быстро для нескольких контактов, так как контакты загружаются чаще, и становится медленнее.Ниже приведен блок кода, который я использую

-(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];
            });

        }];
    });

}

Любые предложения будут более полезными

...