Zoeken…


Opmerkingen

Contacttoegang autoriseren

Het raamwerk importeren

Snel

import Contacts

Doelstelling C

#import <Contacts/Contacts.h>

Toegankelijkheid controleren

Snel

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

Doelstelling C

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

Toestemming vragen

Snel

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

Toegang tot contacten

Een filter toepassen

Om toegang te krijgen tot contacten, moeten we een filter van het type NSPredicate op onze variabele contactStore die we hebben gedefinieerd in het voorbeeld Contacttoegang autoriseren. Hier willen we bijvoorbeeld contacten sorteren waarvan de naam overeenkomt met de onze:

Snel

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

Doelstelling C

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

Op te geven sleutels opgeven

Hier willen we de voornaam, achternaam en profielafbeelding van de contactpersoon ophalen:

Snel

let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactImageDataKey]

Contacten worden opgehaald

Snel

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

Toegang tot contactgegevens

Snel

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

Een contactpersoon toevoegen

Snel

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow