成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iPhone應用之通訊錄聯系人開發案例

移動開發 iOS
本文介紹的是iPhone應用中關于通訊錄聯系人開發案例,和通訊錄中聯系人相關的應用iPhone提供了兩個框架:AddressBook.framework和AddressBookUI.framework,使用這兩個框架我們可以在程序中訪問并顯示iPhone數據庫中的聯系人信息。

iPhone應用之通訊錄聯系人開發案例是本文要介紹的內容,主要是來講關于UITabBarController學習筆記,來看詳細內容。和通訊錄聯系人相關的應用iPhone提供了兩個框架:AddressBook.framework和AddressBookUI.framework,使用這兩個框架我們可以在程序中訪問并顯示iPhone數據庫中的聯系人信息。

1.AddressBookUI顯示部分

AddressBookUI中提供了和聯系人顯示信息相關的一些Controller,有四個:

ABPeoplePickerNavigationController:顯示整個通訊錄并可以選擇一個聯系人的信息

ABPersonViewController:顯示一個具體聯系人的信息

ABNewPersonViewController:增加一個新的聯系人

ABUnknownPersonViewController:完善一個聯系人的信息

由于其中最主要的是ABPeoplePickerNavigationController,因此就具體的介紹一下通過程序顯示整個通訊錄并且可以選擇其中某個聯系人信息的步驟。

(a)創建并初始化一個ABPeoplePickerNavigationController對象

(b)設置其代理(delegate)

(c)用presentModalViewController:animated:這個方法進行顯示整個通訊錄頁面

例子:

  1. - (IBAction)showPicker:(id)sender {  
  2.     ABPeoplePickerNavigationController *picker =  
  3.     [[ABPeoplePickerNavigationController alloc] init];  
  4.     picker.peoplePickerDelegate = self;  
  5.     [self presentModalViewController:picker animated:YES];  
  6.    [picker release];  

ABPeoplePickerNavigationControllerDelegate的方法介紹

(1)

  1. peoplePickerNavigationControllerDidCancel: 

當用戶選擇取消時調用這個方法,可以在這個方法里取消整個通訊錄頁面的顯示。

(2)

  1. peoplePickerNavigationController:shouldContinueAfterSelectingPerson:  

當用戶選擇了通訊錄中某一個聯系人時調用這個方法,可以在這里獲取聯系人的信息。如果希望可以繼續顯示這個聯系人更具體的信息,則return YES。否則取消整個通訊錄頁面的顯示并return NO。

(3)

  1. eoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:  

如果上一個方法返回的是YES,則會顯示某一個聯系人信息,如果選擇了聯系人的某一項紀錄,就會調用這個方法,可以通過點擊選擇聯系人的某一項信息。如果希望可以對選擇的某一項紀錄進行進一步操作,比如直接撥打電話或調用郵箱發送郵件,則return YES。否則取消整個通訊錄頁面的顯示并return NO。

例子:

  1. - (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {  
  2. // assigning control back to the main controller  
  3. [picker dismissModalViewControllerAnimated:YES];  
  4. }  
  5. - (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker 
  6. shouldContinueAfterSelectingPerson:(ABRecordRef)person {  
  7. //獲取聯系人姓名  
  8. name.text = (NSString*)ABRecordCopyCompositeName(person);  
  9. //獲取聯系人電話  
  10. ABMutableMultiValueRef phoneMulti = ABRecordCopyValue(person, kABPersonPhoneProperty);  
  11. NSMutableArray *phones = [[NSMutableArray alloc] init];  
  12. int i;  
  13. for (i = 0; i < ABMultiValueGetCount(phoneMulti); i++) {  
  14. NSString *aPhone = [(NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, i) autorelease];  
  15. NSString *aLabel = [(NSString*)ABMultiValueCopyLabelAtIndex(phoneMulti, i) autorelease];  
  16. NSLog(@"PhoneLabel:%@ Phone#:%@",aLabel,aPhone);  
  17. if([aLabel isEqualToString:@"_$!<Mobile>!$_"])  
  18. {  
  19. [phones addObject:aPhone];  
  20. }  
  21. }  
  22. phoneNo.text=@"";  
  23. if([phones count]>0)  
  24. {  
  25. NSString *mobileNo = [phones objectAtIndex:0];  
  26. phoneNo.text = mobileNo;  
  27. //NSLog(mobileNo);  
  28. }  
  29. //獲取聯系人郵箱  
  30. ABMutableMultiValueRef emailMulti = ABRecordCopyValue(person, kABPersonEmailProperty);  
  31. NSMutableArray *emails = [[NSMutableArray alloc] init];  
  32. for (i = 0;i < ABMultiValueGetCount(emailMulti); i++)  
  33. {  
  34. NSString *emailAdress = [(NSString*)ABMultiValueCopyValueAtIndex(emailMulti, i) autorelease];  
  35. [emails addObject:emailAdress];  
  36. }  
  37. email.text=@"";  
  38. if([emails count]>0)  
  39. {  
  40. NSString *emailFirst=[emails objectAtIndex:0];  
  41. email.text = emailFirst;  
  42. //NSLog(emailFirst);  
  43. }  
  44. [peoplePicker dismissModalViewControllerAnimated:YES];  
  45. return NO;  
  46. }  
  47. - (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker  
  48.  shouldContinueAfterSelectingPerson:(ABRecordRef)person  
  49. property:(ABPropertyID)property  
  50.   identifier:(ABMultiValueIdentifier)identifier{  
  51. return NO;  

2.AddressBook部分

AddressBook框架部分主要是記錄聯系人的各個信息,ABRecordRef類型的記錄既可以代表單個人(kABPersonType),也可以是一個集合(kABGroupType)。

通訊錄中聯系人的各個屬性有兩種形式,單值屬性和多值屬性。單值屬性對應的只有一個值,比如聯系人的姓名;多值屬性對應的可能有多個值,比如聯系人有多個電話號碼等。

(a)常用方法

  1. CFTypeRef ABRecordCopyValue (  
  2.    ABRecordRef record,  
  3.    ABPropertyID property  
  4. ); 

從一個記錄中獲取某個屬性對應的值

(b)單值屬性對應的方法

  1. CFStringRef ABRecordCopyCompositeName (  
  2.    ABRecordRef record  
  3. ); 

獲取聯系人完整的姓名。

(c)多值屬性對應的方法

  1. CFTypeRef ABMultiValueCopyValueAtIndex (  
  2.    ABMultiValueRef multiValue,  
  3.    CFIndex index  
  4. ); 

返回對應位置處的屬性值

  1. CFStringRef ABMultiValueCopyLabelAtIndex (  
  2.    ABMultiValueRef multiValue,  
  3.    CFIndex index  
  4. ); 

返回對應位置處的屬性標識

  1. CFArrayRef ABMultiValueCopyArrayOfAllValues (  
  2.    ABMultiValueRef multiValue  
  3. ); 

返回包含所有屬性值的數組

  1. CFIndex ABMultiValueGetCount (  
  2.    ABMultiValueRef multiValue  
  3. ); 

返回屬性值的個數

例子:

  1. //獲取聯系人姓名  
  2. name.text = (NSString*)ABRecordCopyCompositeName(person);  
  3. //獲取聯系人電話  
  4. ABMutableMultiValueRef phoneMulti = ABRecordCopyValue(person, kABPersonPhoneProperty);  
  5. NSMutableArray *phones = [[NSMutableArray alloc] init];  
  6. int i;  
  7. for (i = 0; i < ABMultiValueGetCount(phoneMulti); i++) {  
  8. NSString *aPhone = [(NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, i) autorelease];  
  9. NSString *aLabel = [(NSString*)ABMultiValueCopyLabelAtIndex(phoneMulti, i) autorelease];  
  10. NSLog(@"PhoneLabel:%@ Phone#:%@",aLabel,aPhone);  
  11. if([aLabel isEqualToString:@"_$!<Mobile>!$_"])  
  12. {  
  13. [phones addObject:aPhone];  
  14. }  

小結:iPhone應用之通訊錄聯系人開發案例的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 網絡轉載
相關推薦

2011-09-21 14:33:17

點心

2011-10-14 09:42:06

點心通訊錄

2011-08-15 18:02:32

iPhone開發表視圖

2012-06-05 13:53:03

天天聯系華為

2022-01-04 15:34:31

鴻蒙HarmonyOS應用

2009-08-28 17:51:40

iPhone多視圖開發

2022-03-28 06:58:35

微信通訊錄刪除的好友

2011-09-16 14:05:42

Andrioid應用iPhone應用Symbian應用

2011-02-24 11:02:06

GoogleFacebookAndroid

2011-11-28 14:37:32

點心通訊錄

2011-12-12 14:41:57

2012-03-01 19:44:18

Android

2021-12-10 10:12:44

鴻蒙HarmonyOS應用

2011-09-05 14:08:21

微信Andriod安卓

2013-09-17 09:51:49

谷歌Bump移動應用

2011-08-11 10:16:23

iPhoneUIView視圖

2011-08-11 10:27:37

iPhoneUIView視圖

2011-08-16 19:02:23

iPhone開發繪圖

2011-08-10 10:23:20

iPhoneArchivingNSCoder

2010-09-26 08:35:01

火種通訊錄
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线一区二区 | 国产一区二区在线播放视频 | 午夜视频免费在线观看 | 成人午夜高清 | 成人av观看 | 欧美一区不卡 | 在线国产精品一区 | 亚洲永久入口 | 国产视频1区 | 久久999| 久久精品二区亚洲w码 | 91免费在线 | 精品1区| 日韩视频精品在线 | 男女啪啪高潮无遮挡免费动态 | 久久久久久精 | 国产高清一区二区三区 | 极品销魂美女一区二区 | 日韩在线中文字幕 | 美国av毛片 | 国产精品视频在线观看 | 日韩一区精品 | 国产免费拔擦拔擦8x高清 | 在线观看国产wwwa级羞羞视频 | 五月综合色啪 | www国产成人免费观看视频,深夜成人网 | 5060网一级毛片 | av手机免费在线观看 | 国产成人亚洲精品 | 国产精品久久国产精品 | 国产福利在线播放麻豆 | 亚洲视频免费观看 | 天天射美女 | 日韩在线观看中文字幕 | 国产日韩精品一区二区 | 一区二区日韩精品 | 浮生影院免费观看中文版 | 久久精品视频在线播放 | 国产精品 欧美精品 | 欧美精品黄 | 精品国产乱码久久久久久果冻传媒 |