iOS
Contacten Framework
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