Ссылка ABAddressBook
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import AddressBook
Objective C
@import AddressBook;
ABAddressBook
непрозрачный тип (чьи экземпляры известны как адресные книги) обеспечивает интерфейс программирования для Адресной книги — централизованная база данных, используемая многократными приложениями, чтобы хранить персональную информацию о людях. База данных Address Book также поддерживает понятие «группы», содержащей одно или более лиц. Люди могут принадлежать многократным группам, и группы могут также принадлежать другим группам.
ABAddressBook
непрозрачный тип обеспечивает функции для создания ссылок на базу данных Address Book, сохранение изменений, отбрасывание изменений и регистрация для изменений, внесенных внешне (другими потоками или процессами) к базе данных.
-
ABAddressBookCreate
(iOS 6.0)Создает новый объект адресной книги с данными от базы данных Address Book.
Оператор осуждения
Используйте
ABAddressBookCreateWithOptions
функция вместо этого.Объявление
Objective C
ABAddressBookRef ABAddressBookCreate ( void );
Возвращаемое значение
Объект адресной книги.
Обсуждение
Изменения, внесенные в возвращенную адресную книгу, отражаются в базе данных Address Book только после сохранения адресной книги с
ABAddressBookSave
.Оператор импорта
Objective C
@import AddressBook;
Доступность
Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 6.0.
-
Создает новый объект адресной книги с данными от базы данных Address Book.
Объявление
Swift
func ABAddressBookCreateWithOptions(_
options
: CFDictionary!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<ABAddressBook>!Objective C
ABAddressBookRef ABAddressBookCreateWithOptions ( CFDictionaryRef options, CFErrorRef *error );
Параметры
options
Зарезервированный. Передача
NULL
.error
На ошибке, содержит информацию об ошибке. Посмотрите Ошибки Адресной книги.
Возвращаемое значение
Объект адресной книги,
NULL
, или пустая база данных.Обсуждение
Изменения, внесенные в возвращенную адресную книгу, отражаются в базе данных Address Book только после сохранения адресной книги с
ABAddressBookSave
.На iOS 6.0 и позже, если вызывающая сторона не имеет доступа к базе данных Address Book:
Для приложений, соединенных против iOS 6.0 и позже, эта функция возвраты
NULL
.Для приложений, соединенных против предыдущей версии iOS, эта функция возвращает пустую базу данных только для чтения.
Если Ваше приложение синхронизирует информацию с базой данных, это не должно синхронизировать данные, когда это не имеет доступа к базе данных.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 6.0 и позже.
-
Возвращает состояние авторизации Вашего приложения для доступа к данным адресной книги.
Объявление
Swift
func ABAddressBookGetAuthorizationStatus() -> ABAuthorizationStatus
Objective C
ABAuthorizationStatus ABAddressBookGetAuthorizationStatus ( void );
Возвращаемое значение
Состояние авторизации для Вашего приложения.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 6.0 и позже.
-
Запрашивает доступ к данным адресной книги от пользователя.
Объявление
Swift
func ABAddressBookRequestAccessWithCompletion(_
addressBook
: ABAddressBook!, _completion
: ABAddressBookRequestAccessCompletionHandler!)Objective C
void ABAddressBookRequestAccessWithCompletion ( ABAddressBookRef addressBook, ABAddressBookRequestAccessCompletionHandler completion );
Параметры
addressBook
Рассматриваемая адресная книга.
completion
Обработчик завершения, вызванный один раз доступ, предоставил или отклонил пользователь.
Обсуждение
Используйте эту функцию, чтобы запросить доступ к данным адресной книги. В то время как пользователя просят относительно доступа, позволяя Вашему приложению продолжать работать, этот вызов не блокирует. Пока доступ не был предоставлен, любые ссылки адресной книги, которые имеет Ваше приложение, не будут содержать данных, и любая попытка изменить данные перестанет работать с ошибочным типом
kABOperationNotPermittedByUserError
. Пользователя только просят относительно разрешения в первый раз, когда Вы запрашиваете доступ. Более поздние вызовы используют разрешение, данное пользователем.Обработчик завершения вызывают на произвольной очереди. Если Ваше приложение использует адресную книгу всюду по приложению, Вы ответственны за обеспечение, что все использование той адресной книги диспетчеризируется единственной очереди для обеспечения корректной ориентированной на многопотоковое исполнение работы.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 6.0 и позже.
-
Указывает, имеет ли адресная книга изменения, не сохраненные к базе данных Address Book.
Объявление
Swift
func ABAddressBookHasUnsavedChanges(_
addressBook
: ABAddressBook!) -> BoolObjective C
bool ABAddressBookHasUnsavedChanges ( ABAddressBookRef addressBook );
Параметры
addressBook
Рассматриваемая адресная книга.
Возвращаемое значение
true
когдаaddressBook
содержит несохраненные изменения,false
иначе.Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Сохраняет любые несохраненные изменения в базе данных Address Book.
Объявление
Swift
func ABAddressBookSave(_
addressBook
: ABAddressBook!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> BoolObjective C
bool ABAddressBookSave ( ABAddressBookRef addressBook, CFErrorRef *error );
Параметры
addressBook
Адресная книга для сохранения.
error
На ошибке, содержит информацию об ошибке. Посмотрите Ошибки Адресной книги.
Возвращаемое значение
true
когда успешный,false
иначе.Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Отбрасывания несохраненные изменения в адресной книге.
Объявление
Swift
func ABAddressBookRevert(_
addressBook
: ABAddressBook!)Objective C
void ABAddressBookRevert ( ABAddressBookRef addressBook );
Параметры
addressBook
Адресная книга для возвращения.
Обсуждение
Адресная книга загружается информацией в базе данных Address Book.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Добавляет запись на адресную книгу.
Объявление
Swift
func ABAddressBookAddRecord(_
addressBook
: ABAddressBook!, _record
: ABRecord!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> BoolObjective C
bool ABAddressBookAddRecord ( ABAddressBookRef addressBook, ABRecordRef record, CFErrorRef *error );
Параметры
addressBook
Адресная книга та, к который
record
добавляется.record
Запись для добавления к
addressBook
.error
На ошибке, содержит информацию об ошибке. Посмотрите Ошибки Адресной книги.
Возвращаемое значение
true
когда успешный,false
иначе.Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Удаляет запись из адресной книги.
Объявление
Swift
func ABAddressBookRemoveRecord(_
addressBook
: ABAddressBook!, _record
: ABRecord!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> BoolObjective C
bool ABAddressBookRemoveRecord ( ABAddressBookRef addressBook, ABRecordRef record, CFErrorRef *error );
Параметры
addressBook
Адресная книга та, от который
record
должен быть удален.record
Запись для удаления из
addressBook
.error
На ошибке, содержит информацию об ошибке. Посмотрите Ошибки Адресной книги.
Возвращаемое значение
true
когда успешный,false
иначе.Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Когда база данных Address Book изменяется, регистрирует обратный вызов для получения уведомлений.
Объявление
Swift
func ABAddressBookRegisterExternalChangeCallback(_
addressBook
: ABAddressBook!, _callBack
: ABExternalChangeCallback, _context
: UnsafeMutablePointer<Void>)Objective C
void ABAddressBookRegisterExternalChangeCallback ( ABAddressBookRef addressBook, ABExternalChangeCallback callback, void *context );
Параметры
addressBook
Адресная книга раньше взаимодействовала с базой данных Address Book.
callBack
Функция для вызова, когда изменяется база данных Address Book.
context
Объект передать функции обратного вызова.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
ABAddressBookUnregisterExternalChangeCallback (_: _: _:) ABAddressBookUnregisterExternalChangeCallback
Не регистрирует обратный вызов.
Объявление
Swift
func ABAddressBookUnregisterExternalChangeCallback(_
addressBook
: ABAddressBook!, _callBack
: ABExternalChangeCallback, _context
: UnsafeMutablePointer<Void>)Objective C
void ABAddressBookUnregisterExternalChangeCallback ( ABAddressBookRef addressBook, ABExternalChangeCallback callback, void *context );
Параметры
addressBook
Адресная книга раньше взаимодействовала с базой данных Address Book.
callBack
Функция для вызова, когда изменяется база данных Address Book. Подпись функции должна соответствовать
ABExternalChangeCallback
.context
Объект передать функции обратного вызова.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает локализованную версию метки рекордного свойства.
Объявление
Swift
func ABAddressBookCopyLocalizedLabel(_
label
: CFString!) -> Unmanaged<CFString>!Objective C
CFStringRef ABAddressBookCopyLocalizedLabel ( CFStringRef label );
Параметры
label
Метка для локализации.
Возвращаемое значение
Метка, локализованная к локали пользователя.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Когда база данных Address Book изменяется другим экземпляром адресной книги, прототип для функционального обратного вызова вызвал на адресную книгу.
Объявление
Swift
typealias ABExternalChangeCallback = CFunctionPointer<((ABAddressBook!, CFDictionary!, UnsafeMutablePointer<Void>) -> Void)>
Objective C
typedef void (*ABExternalChangeCallback) ( ABAddressBookRef addressBook, CFDictionaryRef info, void *context );
Параметры
addressBook
Адресная книга раньше взаимодействовала с базой данных Address Book.
info
Всегда
NULL
.context
Объект передать функции обратного вызова.
Обсуждение
Использовать
ABAddressBookRegisterExternalChangeCallback
зарегистрироваться иABAddressBookUnregisterExternalChangeCallback
не зарегистрировать функцию обратного вызова.Можно зарегистрироваться для обратного вызова в различных контекстах или функциях обратного вызова. Цикл выполнения на потоке, зарегистрировавшем обратный вызов, вызывает обратный вызов.
addressBook
объект не принимает мер, чтобы сбросить или синхронизировать кэшируемое состояние с базой данных Address Book. Если Вы хотите гарантировать этоaddressBook
не содержит устаревшие значения, используютABAddressBookRevert
.Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Ссылка на объект раньше взаимодействовала с базой данных Address Book.
Объявление
Swift
typealias ABAddressBookRef = ABAddressBook
Objective C
typedef CFTypeRef ABAddressBookRef;
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 2.0 и позже.
-
Когда запрос доступа завершился, определение для блочного обратного вызова вызвало.
Объявление
Swift
typealias ABAddressBookRequestAccessCompletionHandler = (Bool, CFError!) -> Void
Objective C
typedef void (^ABAddressBookRequestAccessCompletionHandler) ( bool granted, CFErrorRef error );
Обсуждение
Блоки обработчика завершения доступа запроса адресной книги используются с
ABAddressBookCreateWithOptions
. Если бы у Вас был контроллер представления, хотевший вывести на экран количество пользователей с именем «Смит» в адресной книге, то Вы могли бы реализовать что-то как код, показанный в следующем листинге кода.@implementation APLViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view
CFErrorRef myError = NULL;
ABAddressBookRef myAddressBook = ABAddressBookCreateWithOptions(NULL, &myError);
APLViewController * __weak weakSelf = self; // avoid capturing self in the block
ABAddressBookRequestAccessWithCompletion(myAddressBook,
^(bool granted, CFErrorRef error) {
if (granted) {
NSArray *theSmiths = CFBridgingRelease(
ABAddressBookCopyPeopleWithName(myAddressBook,
CFSTR("Smith")
)
);
weakSelf.numberOfSmiths = [theSmiths count];
} else {
// Handle the case of being denied access and/or the error.
}
CFRelease(myAddressBook);
});
}
...
@end
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 6.0 и позже.
-
Домен Error, под которым сгруппированы ошибки Адресной книги.
Объявление
Swift
let ABAddressBookErrorDomain: CFString!
Objective C
const CFStringRef ABAddressBookErrorDomain;
Константы
-
Различные возможные значения для состояния авторизации приложения относительно данных адресной книги.
Объявление
Swift
enum ABAuthorizationStatus : CFIndex { case NotDetermined case Restricted case Denied case Authorized }
Objective C
typedef CF_ENUM (CFIndex, ABAuthorizationStatus ) { kABAuthorizationStatusNotDetermined = 0, kABAuthorizationStatusRestricted, kABAuthorizationStatusDenied, kABAuthorizationStatusAuthorized };
Константы
-
NotDetermined
kABAuthorizationStatusNotDetermined
Никакое состояние авторизации не могло быть определено.
Доступный в iOS 6.0 и позже.
-
Restricted
kABAuthorizationStatusRestricted
Приложение не авторизовывается к данным книги указателя. Пользователь не может изменить этот доступ, возможно вследствие ограничений, таких как родительский контроль.
Доступный в iOS 6.0 и позже.
-
Denied
kABAuthorizationStatusDenied
Пользователь явно запретил доступа к данным адресной книги для этого приложения.
Доступный в iOS 6.0 и позже.
-
Authorized
kABAuthorizationStatusAuthorized
Приложение авторизовывается к данным книги указателя.
Доступный в iOS 6.0 и позже.
Оператор импорта
Objective C
@import AddressBook;
Swift
import AddressBook
Доступность
Доступный в iOS 6.0 и позже.
-
-
Ошибки, которые могут быть повышены под ошибочным доменом Адресной книги.
Объявление
Swift
var kABOperationNotPermittedByStoreError: Int { get } var kABOperationNotPermittedByUserError: Int { get }
Objective C
enum { kABOperationNotPermittedByStoreError = 0, kABOperationNotPermittedByUserError };
Константы
-
kABOperationNotPermittedByStoreError
Работа не позволяется базой данных Address Book, потому что источник контакта не поддерживает его.
Доступный в iOS 2.0 и позже.
-
kABOperationNotPermittedByUserError
Работа не позволяется, потому что пользователь запретил доступа к базе данных Address Book.
Доступный в iOS 6.0 и позже.
-