Как найти количество членов CNGroup в Xcode 7/iOS 9

Я хочу отобразить имена каждого из CNGroups в базе данных контактов iPhone и количество людей в каждой группе.

У меня есть массив CNGroups, поэтому я могу получить имя и свойства идентификатора каждой группы

я мог бы позвонить

[CNContact predicateForContactsInGroupWithIdentifier: theGroup.identifier] ,

затем создайте выборку на CNContactStore, используя этот предикат, а затем подсчитайте количество возвращаемых элементов массива, и это работает.

Это кажется долгим и ресурсоемким способом узнать количество членов, настолько, что я уверен, что должен быть более простой способ добиться этого.

Я что-то пропустил или так и должно быть?

Спасибо.


person SimonTheDiver    schedule 08.10.2015    source источник


Ответы (1)


Вот как бы я это сделал, если вы обнаружите, что производительность снижается, вы всегда можете отправить его в фоновую очередь, поскольку согласно документация

эта структура оптимизирована для потокобезопасного использования только для чтения

person Steve Wilford    schedule 08.10.2015
comment
никаких заметных проблем с производительностью — даже в основном потоке на iPhone 5 — наборы данных обычно не должны быть невероятно большими. Также вы можете выполнять выборку с помощью одного ключа атрибута, а не получать и хранить весь контакт для каждого контакта в группе - просто кажется, что в API должен быть метод group.numberOfMembers. - person SimonTheDiver; 08.10.2015