How to obtain the attributes of contacts in address Book by ios
This article mainly introduces how to achieve ios address book contact attributes access, has a certain reference value, interested friends can refer to, I hope you can learn a lot after reading this article, the following let Xiaobian with you to understand.
ABAddressBookRef addressBook = ABAddressBookCreate ()
CFArrayRef results = ABAddressBookCopyArrayOfAllPeople (addressBook)
For (int I = 0; I < CFArrayGetCount (results); iTunes +)
{
ABRecordRef person = CFArrayGetValueAtIndex (results, I)
/ / read firstname
NSString* personName = (NSString*) ABRecordCopyValue (person, kABPersonFirstNameProperty)
If (personName! = nil)
Label.text = [label.text stringByAppendingFormat:@ "name:% @", personName]
/ / read lastname
NSString* lastname = (NSString*) ABRecordCopyValue (person, kABPersonLastNameProperty)
If (lastname! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", lastname]
/ / read middlename
NSString* middlename = (NSString*) ABRecordCopyValue (person, kABPersonMiddleNameProperty)
If (middlename! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", middlename]
/ / read prefix prefix
NSString* prefix = (NSString*) ABRecordCopyValue (person, kABPersonPrefixProperty)
If (prefix! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", prefix]
/ / read the suffix suffix
NSString* suffix = (NSString*) ABRecordCopyValue (person, kABPersonSuffixProperty)
If (suffix! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", suffix]
/ / read the name of nickname
NSString* nickname = (NSString*) ABRecordCopyValue (person, kABPersonNicknameProperty)
If (nickname! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", nickname]
/ / read firstname phonetic alphabet
NSString* firstnamePhonetic = (NSString*) ABRecordCopyValue (person,kABPersonFirstNamePhoneticProperty)
If (firstnamePhonetic! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", firstnamePhonetic]
/ / read lastname phonetic alphabet
NSString* lastnamePhonetic = (NSString*) ABRecordCopyValue (person,kABPersonLastNamePhoneticProperty)
If (lastnamePhonetic! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", lastnamePhonetic]
/ / read middlename phonetic alphabet
NSString* middlenamePhonetic = (NSString*) ABRecordCopyValue (person,kABPersonMiddleNamePhoneticProperty)
If (middlenamePhonetic! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", middlenamePhonetic]
/ / read organization Company
NSString* organization = (NSString*) ABRecordCopyValue (person, kABPersonOrganizationProperty)
If (organization! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", organization]
/ / read jobtitle work
NSString* jobtitle = (NSString*) ABRecordCopyValue (person, kABPersonJobTitleProperty)
If (jobtitle! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", jobtitle]
/ / read department department
NSString* department = (NSString*) ABRecordCopyValue (person, kABPersonDepartmentProperty)
If (department! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", department]
/ / read birthday birthday
NSDate* birthday = (NSDate*) ABRecordCopyValue (person, kABPersonBirthdayProperty)
If (birthday! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", birthday]
/ / read note memo
NSString* note = (NSString*) ABRecordCopyValue (person, kABPersonNoteProperty)
If (note! = nil)
Label.text = [label.text stringByAppendingFormat:@ "% @", note]
/ / the time when the record was first added
NSString* firstknow = (NSString*) ABRecordCopyValue (person, kABPersonCreationDateProperty)
NSLog (@ "time this record was first added% @\ n", firstknow)
/ / the time when the entry record was last modified
NSString* lastknow = (NSString*) ABRecordCopyValue (person, kABPersonModificationDateProperty)
NSLog (@ "time the record was last modified% @\ n", lastknow)
/ / get multiple values of email
ABMultiValueRef email = ABRecordCopyValue (person, kABPersonEmailProperty)
Int emailcount = ABMultiValueGetCount (email)
For (int x = 0; x < emailcount; x +)
{
/ / obtain email Label
NSString* emailLabel = (NSString*) ABAddressBookCopyLocalizedLabel (ABMultiValueCopyLabelAtIndex (email, x))
/ / get the value of email
NSString* emailContent = (NSString*) ABMultiValueCopyValueAtIndex (email, x)
Label.text = [label.text stringByAppendingFormat:@ "% @:% @", emailLabel,emailContent]
}
/ / read address multiple values
ABMultiValueRef address = ABRecordCopyValue (person, kABPersonAddressProperty)
Int count = ABMultiValueGetCount (address)
For (int j = 0; j < count; jacks +)
{
/ / get the address Label
NSString* addressLabel = (NSString*) ABMultiValueCopyLabelAtIndex (address, j)
Label.text = [label.text stringByAppendingFormat:@ "% @", addressLabel]
/ / get the address 6 attribute under the label
NSDictionary* personaddress = (NSDictionary*) ABMultiValueCopyValueAtIndex (address, j)
NSString* country = [personaddress valueForKey: (NSString*) kABPersonAddressCountryKey]
If (country! = nil)
Label.text = [label.text stringByAppendingFormat:@ "country:% @", country]
NSString* city = [personaddress valueForKey: (NSString*) kABPersonAddressCityKey]
If (city! = nil)
Label.text = [label.text stringByAppendingFormat:@ "City:% @", city]
NSString* state = [personaddress valueForKey: (NSString*) kABPersonAddressStateKey]
If (state! = nil)
Label.text = [label.text stringByAppendingFormat:@ "province:% @", state]
NSString* street = [personaddress valueForKey: (NSString*) kABPersonAddressStreetKey]
If (street! = nil)
Label.text = [label.text stringByAppendingFormat:@ "Street:% @", street]
NSString* zip = [personaddress valueForKey: (NSString*) kABPersonAddressZIPKey]
If (zip! = nil)
Label.text = [label.text stringByAppendingFormat:@ "zip code:% @", zip]
NSString* coutntrycode = [personaddress valueForKey: (NSString*) kABPersonAddressCountryCodeKey]
If (coutntrycode! = nil)
Label.text = [label.text stringByAppendingFormat:@ "country code:% @", coutntrycode]
}
/ / get multiple values of dates
ABMultiValueRef dates = ABRecordCopyValue (person, kABPersonDateProperty)
Int datescount = ABMultiValueGetCount (dates)
For (int y = 0; y < datescount; yearly +)
{
/ / obtain dates Label
NSString* datesLabel = (NSString*) ABAddressBookCopyLocalizedLabel (ABMultiValueCopyLabelAtIndex (dates, y))
/ / get dates value
NSString* datesContent = (NSString*) ABMultiValueCopyValueAtIndex (dates, y)
Label.text = [label.text stringByAppendingFormat:@ "% @:% @", datesLabel,datesContent]
}
/ / get the kind value
CFNumberRef recordType = ABRecordCopyValue (person, kABPersonKindProperty)
If (recordType = = kABPersonKindOrganization) {
/ / it's a company
NSLog (@ "it's a company")
} else {
/ / it's a person, resource, or room
NSLog (@ "it's a person, resource, or room")
}
/ / get multiple values of IM
ABMultiValueRef instantMessage = ABRecordCopyValue (person, kABPersonInstantMessageProperty)
For (int l = 1; l < ABMultiValueGetCount (instantMessage); lump +)
{
/ / obtain IM Label
NSString* instantMessageLabel = (NSString*) ABMultiValueCopyLabelAtIndex (instantMessage, l)
Label.text = [label.text stringByAppendingFormat:@ "% @", instantMessageLabel]
/ / get the 2 attributes under the label
NSDictionary* instantMessageContent = (NSDictionary*) ABMultiValueCopyValueAtIndex (instantMessage, l)
NSString* username = [instantMessageContent valueForKey: (NSString*) kABPersonInstantMessageUsernameKey]
If (username! = nil)
Label.text = [label.text stringByAppendingFormat:@ "username:%@", username]
NSString* service = [instantMessageContent valueForKey: (NSString*) kABPersonInstantMessageServiceKey]
If (service! = nil)
Label.text = [label.text stringByAppendingFormat:@ "service:%@", service]
}
/ / read phone multiple values
ABMultiValueRef phone = ABRecordCopyValue (person, kABPersonPhoneProperty)
For (int k = 0; k