Получение специального источника ABS от ABAddressBook в iOS 4+

Кто-нибудь есть пример того, как получить конкретный источник ABS из ABAddressBook в iOS 4+?

iOS 4+ предоставляет новый API, который позволяет выбрать конкретный источник ABS из ABAddressBook. Это может быть полезно, поскольку некоторые операции, например создание ABGroup, не поддерживаются в некоторых источниках (например, Exchange).

«Не все типы источников поддерживают группы, более заметным образом, Exchange ничего не знает о группах». – http://flavors.me/volonbolon#1a5/tumblr

Прилагаются функции, которые используют новый API для получения источников определенных типов, которые могут использоваться при вызовах ABGroupCreateInSource ().

#define CFRELEASE_AND_NIL(x) CFRelease(x); x=nil; ABRecordRef sourceWithType (ABSourceType mySourceType) { ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef sources = ABAddressBookCopyArrayOfAllSources(addressBook); CFIndex sourceCount = CFArrayGetCount(sources); ABRecordRef resultSource = NULL; for (CFIndex i = 0 ; i < sourceCount; i++) { ABRecordRef currentSource = CFArrayGetValueAtIndex(sources, i); CFTypeRef sourceType = ABRecordCopyValue(currentSource, kABSourceTypeProperty); BOOL isMatch = mySourceType == [(NSNumber *)sourceType intValue]; CFRELEASE_AND_NIL(sourceType); if (isMatch) { resultSource = currentSource; break; } } CFRELEASE_AND_NIL(addressBook); CFRELEASE_AND_NIL(sources); return resultSource; } ABRecordRef localSource() { return sourceWithType(kABSourceTypeLocal); } ABRecordRef exchangeSource() { return sourceWithType(kABSourceTypeExchange); } ABRecordRef mobileMeSource() { return sourceWithType(kABSourceTypeMobileMe); } 

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

Xyzzycoder-

Ваше решение работает хорошо, если уже есть localSource, но просто возвращает NULL, если его нет.

Есть ли способ, например, создать ABRecordRef для локального источника? Мне нужно сохранить мой контакт с источником, не являющимся синхронизацией.

ура

Код имеет ошибки, поэтому он всегда возвращает два, так как метод ABRecordGetRecordType не является частью источника ABS. Он включает только:

kABPersonType для записей человека kABGroupType для групповых записей. kABSourceType для записей источников.

Чтобы выяснить правильный тип, вы должны использовать: ABRecordCopyValue (source, kABSourceTypeProperty) вместо этого! 🙂 Работает отлично на моем iPhone с или без localSource.

Удачи!

  • Как создать цветной 1x1 UIImage на iPhone динамически?
  • Как вы вычисляете день года на определенную дату в Objective-C?
  • iPhone - телефон идет спать, даже если idleTimerDisabled - ДА
  • Ошибка обнаружения: поврежденные данные JPEG: преждевременный конец сегмента данных
  • iPhone: конвертировать строку даты в относительную отметку времени
  • Лучший подход для синтаксического анализа XML на iPhone
  • Как iPhone 5 + iOS6 решит, должно ли приложение запускаться в режиме почтового ящика
  • Процедура отправки сообщений iOS 6 Facebook заканчивается ошибкой «remote_app_id не соответствует сохраненному id»
  • Как resize изображения программно в объективе-c в iphone
  • Направление настройки для UISwipeGestureRecognizer
  • Планшет (iPad / Android) - Протокол связи с сервером
  • Interesting Posts

    jQuery отключить прокрутку, когда мышь над абсолютным div

    Расширение Тильды не работает в Bash

    Sass Интерполяция имен Mixin, Function и Variable

    Угловой 2 CLI огромный пакет поставщиков: как улучшить размер для prod?

    Можно ли заставить Java игнорировать «хранилище доверия» и просто принять любой сертификат SSL, который он получает?

    Может ли class Java добавлять метод вовремя?

    Может ли панель предварительного просмотра Windows 7 Explorer не блокировать редактирование документов Acrobat и Word?

    Невозможно обработать проверку данных info.plist приложения в это время из-за общей ошибки (1095)

    Неконстантная ссылка связана с временной ошибкой Visual Studio?

    Использование Java с графическим процессором Nvidia (cuda)

    Селектор CSS, который применяется к элементам с двумя classами

    Как установить ширину и высоту DialogFragment?

    Как настроить собственные ярлыки для стилей?

    открывать карты Google через намерение для конкретного местоположения в android

    Может ли поток потока беспроводного маршрутизатора без подключения к Интернету?

    Давайте будем гением компьютера.