標籤:style blog http color io os ar for sp
進入正題 擷取系統通訊錄,不想多講,留下連結http://my.oschina.net/joanfen/blog/140146
通常做法:
首先建立一個ABAddressBookRef類的對象addressBooks,然後擷取系統許可權,
擷取許可權的代碼:
// 擷取系統許可權,並獲得通訊錄內容存入addressBooks。 ABAddressBookRef addressBooks = nil; addressBooks = ABAddressBookCreateWithOptions(NULL, NULL); dispatch_semaphore_t sema = dispatch_semaphore_create(0); ABAddressBookRequestAccessWithCompletion(addressBooks, ^(bool granted, CFErrorRef error){ dispatch_semaphore_signal(sema); }); dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); dispatch_release(sema); // 擷取通訊錄中的所有人 CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBooks);
然後建立一個CFArrayRef類的對象allPerson,通過ABAddressBookCopyArrayOfAllPeople(addressBooks)接受adressBooks。
然後在建立一個ABRecordRef類的對象person,但其實他並不是一個真正包含通訊錄資訊的類,這個ABRecordRef只是一條記錄而已。
下一步通過建立的person對象,利用方法:
AB_EXTERN CFTypeRef ABRecordCopyValue(ABRecordRef record, ABPropertyID property);
想要擷取什麼資訊,property就寫ABPropertyID這個類型的變數,其實ABPropertyID是一個int32_t類型的變數。
IOS 擷取系統通訊錄