91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

獲取通訊錄內容

發布時間: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

东城区| 随州市| 湖南省| 大宁县| 六安市| 建始县| 林口县| 山东省| 神池县| 安龙县| 婺源县| 昌都县| 远安县| 家居| 屯昌县| 姚安县| 浦东新区| 金秀| 宁化县| 贺兰县| 天祝| 井冈山市| 盐边县| 柯坪县| 饶阳县| 宁明县| 洛浦县| 宜宾市| 南丰县| 齐齐哈尔市| 宝鸡市| 上思县| 项城市| 平顶山市| 连平县| 都昌县| 金寨县| 南涧| 楚雄市| 赣榆县| 望城县|