Используя адресную книгу C API

По большей части Objective C API имеет близкий метод и четность синтаксиса с API C. Это упрощает определять, например, какая функция соответствует данному методу Objective C.

Существует несколько первичных различий, что разработчики должны знать при использовании Адресной книги C о API:

Для доступа к совместно используемой адресной книге пользователя с помощью интерфейса программирования C необходимо использовать значение, возвращенное ABGetSharedAddressBook.

ABAddressBookRef addressBook = ABGetSharedAddressBook();

Сравните это с соответствующим кодом с помощью интерфейса программирования Objective C, отметив отображение между соответствующим методом и именами функций.

ABAddressBook *addressBook = [ABAddressBook sharedAddressBook];

Этот пример от Поиска Адресной книги, Перечисления 1, ищет любого названного Смитом в адресной книге текущего пользователя и возвращает массив результатов.

Перечисление 1  простой поиск, в Objective C

ABAddressBook *AB = [ABAddressBook sharedAddressBook];
 
ABSearchElement *nameIsSmith =
    [ABPerson searchElementForProperty:kABLastNameProperty
                                 label:nil
                                   key:nil
                                 value:@"Smith"
                            comparison:kABEqualCaseInsensitive];
 
NSArray *peopleFound =
    [AB recordsMatchingSearchElement:nameIsSmith];

Перечисление 2 выполняет тот же поиск с помощью API C. Снова, отметьте отображение между соответствующим методом и именами функций.

Перечисление 2  простой поиск, в C

ABAddressBookRef AB = ABGetSharedAddressBook();
 
ABSearchElementRef nameIsSmith =
    ABPersonCreateSearchElement(kABLastNameProperty,
                    NULL,
                    NULL,
                    CFSTR("Smith"),
                    kABEqualCaseInsensitive);
 
CFArrayRef peopleFound =
    ABCopyArrayOfMatchingRecords(AB, nameIsSmith);

Для получения дополнительной информации об использовании API C для платформы Адресной книги, отошлите к Адресной книге C Ссылку Платформы для Mac.