1

如何在表格视图中显示联系人?

我已经通过 CNContactStore iOS 9 获取了联系人。

- (void) getContacts {
    CNContactStore *store = [[CNContactStore alloc] init];
    [store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
        if (granted == YES) {
            //keys with fetching properties
            NSArray *keys = @[CNContactFamilyNameKey, CNContactGivenNameKey, CNContactPhoneNumbersKey,CNContactImageDataKey];
            NSString *containerId = store.defaultContainerIdentifier;
            NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
            NSError *error;
            NSArray *cnContactsarray = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];   
            if (error) {
                NSLog(@"error fetching contacts %@", error);
                        }
            else {
                    for (CNContact *contact in cnContactsarray) {
                    //store all the contacts as per your requirement
                    NSLog(@"Name       :     %@",contact.givenName);
                    NSLog(@"Id         :     %@",contact.identifier);//the contact id which you want
                        [_ContactsCN addObject:contact];
                                  }


            }
            NSLog(@"array %@",_ContactsCN);
        }
    }];
}

任何帮助将不胜感激。

4

1 回答 1

1

当您从 CNContact 获取联系人完成时,您需要在主线程上重新加载数据

在主线程上运行

dispatch_async(dispatch_get_main_queue(), ^{// reload your table here 
});
于 2016-04-29T12:50:10.077 回答