亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

獲取通訊錄內容

發布時間:2020-06-22 13:26:46 來源:網絡 閱讀:312 作者:ljl5125 欄目:開發技術

先導入AddressBook.framework和

AddressBookUI.framework兩個框架

添加地址簿框架后,我們還需要在工程中添加相應的頭文件:


#import <AddressBook/AddressBook.h>

#import <AddressBookUI/AddressBookUI.h>

1.AddressBookUI顯示部分

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

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

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

ABNewPersonViewController:增加一個新的聯系人

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

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

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

(b)設置其代理(delegate)

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

例子:

    - (IBAction)showPicker:(id)sender {  

    ABPeoplePickerNavigationController *picker =  

    [[ABPeoplePickerNavigationController alloc] init];  

  picker.peoplePickerDelegate = self;  

    [self presentModalViewController:picker animated:YES];  

   [picker release];  

ABPeoplePickerNavigationControllerDelegate的方法介紹

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

(1)peoplePickerNavigationControllerDidCancel: 

例子 : 

- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {


    [peoplePicker dismissViewControllerAnimated:YES completion:nil];

}




(2)選擇具體聯系人的時候,拿到該聯系人的具體信息

-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person {

    //獲取聯系人姓名

    NSString *name = (__bridge NSString*)ABRecordCopyCompositeName(person);

    NSLog(@"name = %@",name);

    //獲取聯系人電話

    ABMutableMultiValueRef phoneMulti = ABRecordCopyValue(person, kABPersonPhoneProperty);

    

    NSMutableArray *phones = [[NSMutableArray alloc] init];

    int i;

    for (i = 0; i < ABMultiValueGetCount(phoneMulti); i++) {

        NSString *aPhone = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, i);

        NSString *aLabel = (__bridge NSString*)ABMultiValueCopyLabelAtIndex(phoneMulti, i);

        NSLog(@"PhoneLabel:%@ Phone#:%@",aLabel,aPhone);

        if([aLabel isEqualToString:@"_$!<Mobile>!$_"])

        {

            [phones addObject:aPhone];

        }

    }

    NSString *phone;

    if([phones count]>0)

    {

        NSString *mobileNo = [phones objectAtIndex:0];

        phone = mobileNo;

        NSLog(@"phone = %@", phone);

        //NSLog(mobileNo);

    }

    //獲取聯系人郵箱

    ABMutableMultiValueRef emailMulti = ABRecordCopyValue(person, kABPersonEmailProperty);

    NSMutableArray *emails = [[NSMutableArray alloc] init];

    for (i = 0;i < ABMultiValueGetCount(emailMulti); i++)

    {

        NSString *emailAdress = (__bridge NSString*)ABMultiValueCopyValueAtIndex(emailMulti, i);

        [emails addObject:emailAdress];

    }

    NSString *email;

    if([emails count]>0)

    {

        NSString *emailFirst=[emails objectAtIndex:0];

        email = emailFirst;

        NSLog(@"email = %@",email);

    }

    [peoplePicker dismissViewControllerAnimated:YES completion:nil];

    


}



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. ); 

返回屬性值的個數


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安泽县| 高台县| 卓尼县| 石首市| 永仁县| 普安县| 札达县| 县级市| 临江市| 洛南县| 平乐县| 米林县| 井陉县| 安吉县| 塔城市| 庆元县| 修武县| 临澧县| 马尔康县| 轮台县| 兴隆县| 明水县| 东至县| 丰都县| 乳山市| 鄢陵县| 长泰县| 德清县| 昭苏县| 惠来县| 祁阳县| 富川| 灵山县| 蛟河市| 陇西县| 新兴县| 通辽市| 全州县| 故城县| 绥阳县| 阿合奇县|