수색…


비고

유용한 링크

연락처 액세스 인증

프레임 워크 가져 오기

빠른

import Contacts

목표 -C

#import <Contacts/Contacts.h>

접근성 검사

빠른

switch CNContactStore.authorizationStatusForEntityType(CNEntityType.Contacts){
case .Authorized: //access contacts
case .Denied, .NotDetermined: //request permission
default: break
}

목표 -C

switch ([CNContactStore authorizationStatusForEntityType:CNEntityType.Contacts]){
case CNAuthorizationStatus.Authorized:
    //access contacts
    break;
case CNAuthorizationStatus.Denied:
    //request permission
    break;
case CNAuthorizationStatus.NotDetermined:
    //request permission
    break;
}

허가 요청

빠른

var contactStore = CKContactStore()
contactStore.requestAccessForEntityType(CKEntityType.Contacts, completionHandler: { (ok, _) -> Void in
    if access{
        //access contacts
    }
}

연락처 액세스

필터 적용

연락처에 액세스하려면 Contact Access 인증 권한 부여 예제에서 정의한 contactStore 변수에 NSPredicate 유형의 필터를 적용해야합니다. 예를 들어, 여기에 우리는 우리 자신의 이름과 일치하는 연락처를 분류하고 싶습니다.

빠른

let predicate = CNContact.predicateForContactsMatchingName("Some Name")

목표 -C

NSPredicate *predicate = [CNContact predicateForContactsMatchingName:@"Some Name"];

가져올 키 지정

여기서는 연락처의 이름, 성 및 프로필 이미지를 가져 오려고합니다.

빠른

let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactImageDataKey]

연락처 가져 오는 중

빠른

do {
    let contacts = try contactStore.unifiedContactsMatchingPredicate(predicate, keysToFetch: keys)
} catch let error as NSError {
    //...
}

연락처 세부 정보 액세스

빠른

print(contacts[0].givenName)
print(contacts[1].familyName)
let image = contacts[2].imageData

연락처 추가

빠른

import Contacts
 
// Creating a mutable object to add to the contact
let contact = CNMutableContact()
 
contact.imageData = NSData() // The profile picture as a NSData object
 
contact.givenName = "John"
contact.familyName = "Appleseed"
 
let homeEmail = CNLabeledValue(label:CNLabelHome, value:"[email protected]")
let workEmail = CNLabeledValue(label:CNLabelWork, value:"[email protected]")
contact.emailAddresses = [homeEmail, workEmail]
 
contact.phoneNumbers = [CNLabeledValue(
    label:CNLabelPhoneNumberiPhone,
    value:CNPhoneNumber(stringValue:"(408) 555-0126"))]
 
let homeAddress = CNMutablePostalAddress()
homeAddress.street = "1 Infinite Loop"
homeAddress.city = "Cupertino"
homeAddress.state = "CA"
homeAddress.postalCode = "95014"
contact.postalAddresses = [CNLabeledValue(label:CNLabelHome, value:homeAddress)]
 
let birthday = NSDateComponents()
birthday.day = 1
birthday.month = 4
birthday.year = 1988  // You can omit the year value for a yearless birthday
contact.birthday = birthday
 
// Saving the newly created contact
let store = CNContactStore()
let saveRequest = CNSaveRequest()
saveRequest.addContact(contact, toContainerWithIdentifier:nil)
try! store.executeSaveRequest(saveRequest)


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow