Potrzebuję uzyskać liczbę wszystkich kontaktów na urządzeniu użytkownika. Komunikat deprecation na ABAddressBookGetPersonCount mówi: IlośćCNContactStore liczba rekordów kontaktów
wykorzystanie sprowadzić wyniki dla CNContactFetchRequest z orzecznika = nil
Oto co wymyśliłem po tych wskazówek:
__block NSUInteger contactsCount = 0;
NSError *error;
CNContactFetchRequest *request = [[CNContactFetchRequest alloc] initWithKeysToFetch:@[CNContactGivenNameKey]];
BOOL success = [self.contactStore enumerateContactsWithFetchRequest:request error:&error
usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {
contactsCount += 1;
}];
if (!success || error) {
NSLog(@"error counting all contacts, error - %@", error.localizedDescription);
}
Jednak to wygląda okropne pod względem wydajności. Nie znalazłem innego sposobu na uzyskanie liczby bez wyliczenia obiektów CNContact. Czy czegoś brakuje?
Z góry dziękuję!
jaki jest kod coś jak sugestia w komunikacie amortyzacyjne? – trojanfoe
Czy istnieje inny sposób na wykonanie CNContactFetchRequest? –