ユーザーのデバイス上のすべての連絡先の番号を取得する必要があります。 ABAddressBookGetPersonCount上の非推奨のメッセージは言う:ここ連絡先レコードのCNContactStore件数
はnil =述語とCNContactFetchRequestの結果をフェッチする
使用回数は、私はそのガイダンスに従って構成されたものです。
__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); }
しかし、これが見えますパフォーマンス面でひどい。 CNContactオブジェクトを列挙せずにカウントを取得する別の方法は見つかりませんでした。何か不足していますか?
ありがとうございます!
:別のものを作成するよりも、
多くの場合、連絡先ストアを再利用する方がよいでしょうか? – trojanfoe
CNContactFetchRequestを実行する別の方法はありますか? –