读书人

取得通讯录中联系人的所有属性[转]

发布时间: 2012-06-25 21:24:50 作者: rapoo

获得通讯录中联系人的所有属性[转]

? ? ABAddressBookRef addressBook = ABAddressBookCreate();

????CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);
????
????for(int i = 0; i < CFArrayGetCount(results); i++)
????{
????????ABRecordRef person = CFArrayGetValueAtIndex(results, i);
????????//读取firstname
????????NSString *personName = (NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
????????if(personName != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"\n姓名:%@\n",personName];
????????//读取lastname
????????NSString *lastname = (NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
????????if(lastname != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",lastname];
????????//读取middlename
????????NSString *middlename = (NSString*)ABRecordCopyValue(person, kABPersonMiddleNameProperty);
????????if(middlename != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",middlename];
????????//读取prefix前缀
????????NSString *prefix = (NSString*)ABRecordCopyValue(person, kABPersonPrefixProperty);
????????if(prefix != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",prefix];
????????//读取suffix后缀
????????NSString *suffix = (NSString*)ABRecordCopyValue(person, kABPersonSuffixProperty);
????????if(suffix != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",suffix];
????????//读取nickname呢称
????????NSString *nickname = (NSString*)ABRecordCopyValue(person, kABPersonNicknameProperty);
????????if(nickname != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",nickname];
????????//读取firstname拼音音标
????????NSString *firstnamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty);
????????if(firstnamePhonetic != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",firstnamePhonetic];
????????//读取lastname拼音音标
????????NSString *lastnamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty);
????????if(lastnamePhonetic != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",lastnamePhonetic];
????????//读取middlename拼音音标
????????NSString *middlenamePhonetic = (NSString*)ABRecordCopyValue(person, kABPersonMiddleNamePhoneticProperty);
????????if(middlenamePhonetic != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",middlenamePhonetic];
????????//读取organization公司
????????NSString *organization = (NSString*)ABRecordCopyValue(person, kABPersonOrganizationProperty);
????????if(organization != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",organization];
????????//读取jobtitle工作
????????NSString *jobtitle = (NSString*)ABRecordCopyValue(person, kABPersonJobTitleProperty);
????????if(jobtitle != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",jobtitle];
????????//读取department部门
????????NSString *department = (NSString*)ABRecordCopyValue(person, kABPersonDepartmentProperty);
????????if(department != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",department];
????????//读取birthday生日
????????NSDate *birthday = (NSDate*)ABRecordCopyValue(person, kABPersonBirthdayProperty);
????????if(birthday != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",birthday];
????????//读取note备忘录
????????NSString *note = (NSString*)ABRecordCopyValue(person, kABPersonNoteProperty);
????????if(note != nil)
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",note];
????????//第一次添加该条记录的时间
????????NSString *firstknow = (NSString*)ABRecordCopyValue(person, kABPersonCreationDateProperty);
????????NSLog(@"第一次添加该条记录的时间%@\n",firstknow);
????????//最后一次修改条记录的时间
????????NSString *lastknow = (NSString*)ABRecordCopyValue(person, kABPersonModificationDateProperty);
????????NSLog(@"最后一次修改条记录的时间%@\n",lastknow);
????????
????????//获取email多值
????????ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty);
????????int emailcount = ABMultiValueGetCount(email);????
????????for (int x = 0; x < emailcount; x++)
????????{
????????????//获取email?Label
????????????NSString* emailLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x));
????????????//获取email值
????????????NSString* emailContent = (NSString*)ABMultiValueCopyValueAtIndex(email, x);
????????????textView.text = [textView.text stringByAppendingFormat:@"%@:%@\n",emailLabel,emailContent];
????????}
????????//读取地址多值
????????ABMultiValueRef address = ABRecordCopyValue(person, kABPersonAddressProperty);
????????int count = ABMultiValueGetCount(address);????
????????
????????for(int j = 0; j < count; j++)
????????{
????????????//获取地址Label
????????????NSString* addressLabel = (NSString*)ABMultiValueCopyLabelAtIndex(address, j);
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",addressLabel];
????????????//获取label下的地址6属性
????????????NSDictionary* personaddress =(NSDictionary*) ABMultiValueCopyValueAtIndex(address, j);????????
????????????NSString* country = [personaddress valueForKey:(NSString *)kABPersonAddressCountryKey];
????????????if(country != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"国家:%@\n",country];
????????????NSString* city = [personaddress valueForKey:(NSString *)kABPersonAddressCityKey];
????????????if(city != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"城市:%@\n",city];
????????????NSString* state = [personaddress valueForKey:(NSString *)kABPersonAddressStateKey];
????????????if(state != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"省:%@\n",state];
????????????NSString* street = [personaddress valueForKey:(NSString *)kABPersonAddressStreetKey];
????????????if(street != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"街道:%@\n",street];
????????????NSString* zip = [personaddress valueForKey:(NSString *)kABPersonAddressZIPKey];
????????????if(zip != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"邮编:%@\n",zip];????
????????????NSString* coutntrycode = [personaddress valueForKey:(NSString *)kABPersonAddressCountryCodeKey];
????????????if(coutntrycode != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"国家编号:%@\n",coutntrycode];????
????????}
????????
????????//获取dates多值
????????ABMultiValueRef dates = ABRecordCopyValue(person, kABPersonDateProperty);
????????int datescount = ABMultiValueGetCount(dates);????
????????for (int y = 0; y < datescount; y++)
????????{
????????????//获取dates Label
????????????NSString* datesLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(dates, y));
????????????//获取dates值
????????????NSString* datesContent = (NSString*)ABMultiValueCopyValueAtIndex(dates, y);
????????????textView.text = [textView.text stringByAppendingFormat:@"%@:%@\n",datesLabel,datesContent];
????????}
????????//获取kind值
????????CFNumberRef recordType = ABRecordCopyValue(person, kABPersonKindProperty);
????????if (recordType == kABPersonKindOrganization) {
????????????// it's a company
????????????NSLog(@"it's a company\n");
????????} else {
????????????// it's a person, resource, or room
????????????NSLog(@"it's a person, resource, or room\n");
????????}
????????
????????
????????//获取IM多值
????????ABMultiValueRef instantMessage = ABRecordCopyValue(person, kABPersonInstantMessageProperty);
????????for (int l = 1; l < ABMultiValueGetCount(instantMessage); l++)
????????{
????????????//获取IM Label
????????????NSString* instantMessageLabel = (NSString*)ABMultiValueCopyLabelAtIndex(instantMessage, l);
????????????textView.text = [textView.text stringByAppendingFormat:@"%@\n",instantMessageLabel];
????????????//获取label下的2属性
????????????NSDictionary* instantMessageContent =(NSDictionary*) ABMultiValueCopyValueAtIndex(instantMessage, l);????????
????????????NSString* username = [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageUsernameKey];
????????????if(username != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"username:%@\n",username];
????????????
????????????NSString*?service?= [instantMessageContent valueForKey:(NSString *)kABPersonInstantMessageServiceKey];
????????????if(service != nil)
????????????????textView.text = [textView.text stringByAppendingFormat:@"service:%@\n",service];????????????
????????}
????????
????????//读取电话多值
????????ABMultiValueRef?phone?= ABRecordCopyValue(person, kABPersonPhoneProperty);
????????for (int k = 0; k<ABMultiValueGetCount(phone); k++)
????????{
????????????//获取电话Label
????????????NSString * personPhoneLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k));
????????????//获取Label下的电话值
????????????NSString * personPhone = (NSString*)ABMultiValueCopyValueAtIndex(phone, k);
????????????????
????????????textView.text = [textView.text stringByAppendingFormat:@"%@:%@\n",personPhoneLabel,personPhone];
????????}
????????
????????//获取URL多值
????????ABMultiValueRef url = ABRecordCopyValue(person, kABPersonURLProperty);
????????for (int m = 0; m < ABMultiValueGetCount(url); m++)
????????{
????????????//获取电话Label
????????????NSString * urlLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(url, m));
????????????//获取Label下的电话值
????????????NSString * urlContent = (NSString*)ABMultiValueCopyValueAtIndex(url,m);
????????????
????????????textView.text = [textView.text stringByAppendingFormat:@"%@:%@\n",urlLabel,urlContent];
????????}
????????
????????//读取照片
????????NSData *image = (NSData*)ABPersonCopyImageData(person);
????????????

????????UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(200, 0, 50, 50)];
????????[myImage setImage:[UIImage imageWithData:image]];
????????myImage.opaque = YES;
????????[textView addSubview:myImage];
????????

????
????}
????
????CFRelease(results);
????CFRelease(addressBook);

原帖地址:http://www.cocoachina.com/bbs/read.php?tid=62527&fpage=2

1 楼 w11h22j33 前天 http://mobile.51cto.com/iphone-282982.htm

读书人网 >移动开发

热点推荐