iOS9 の場合、Contact Frameworkを介してユーザーの個人連絡先情報を取得する
Contacts フレームワークは、ユーザーの連絡先情報にアクセスするための Objective-C および Swift API を提供します。
ABAdressBook の置き換え
このフレームワークは、すべての Apple プラットフォームで利用でき、iOS および OS X の Address Book フレームワークを置き換えます。
具体的には、CNContact
CNContact は、連絡先の名前や電話番号など、連絡先プロパティの不変値オブジェクトを表すスレッド セーフなクラスです。
連絡先の取得
ユーザーの連絡先データベースを表す連絡先ストア (CNContactStore) を使用して、連絡先を取得できます。
ユーザーの連絡先データベースの検索 (iOS 9.0 の新機能)
卵子の名前、姓、誕生日、電話番号など。
let store = CNContactStore()
let contacts = try store.unifiedContactsMatchingPredicate(CNContact.predicateForContactsMatchingName("Appleseed"), keysToFetch:[CNContactGivenNameKey, CNContactFamilyNameKey])
let contact = contacts!.first //assuming contain at least one contact
// Checking if phone number is available for the given contact.
if (contact.isKeyAvailable(CNContactPhoneNumbersKey)) {
print("\(contact.givenName) \(contact.familyName)")
} else {
//Refetch the keys
let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey]
let refetchedContact = try store.unifiedContactWithIdentifier(contact.identifier, keysToFetch: keysToFetch)
print("\(refetchedContact.givenName) \(refetchedContact.familyName)")
}
現在のユーザー情報の検索
if let personInfo:CNContact = CKDiscoveredUserInfo.displayContact{
println("first name: \(personInfo.givenName) last name: \(personInfo.familyName) ") }