通訊錄(ios內建無介面)

來源:互聯網
上載者:User

標籤:

1,添加架構AddressBook.framework

2,請求許可權認證,在Appdelegate.m檔案中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

        /*

         kABAuthorizationStatusNotDetermined = 0, 沒有決定是否授權

         kABAuthorizationStatusRestricted,  受限制

         kABAuthorizationStatusDenied,  拒絕

         kABAuthorizationStatusAuthorized  授權

         */

        //請求使用者授權

        if(ABAddressBookGetAuthorizationStatus()==kABAuthorizationStatusNotDetermined)

        {

            ABAddressBookRef book=ABAddressBookCreateWithOptions(NULL, NULL);

            ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {

                if (granted) {

                    NSLog(@"授權成功");

                }

                else

                {

                    NSLog(@"授權失敗,%@",error);

                }

            });

            

        }

 

       return YES;

}

 

3,控制器中實現

 

#import "ViewController.h"

#import <AddressBook/AddressBook.h>

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

//    /*

//     kABAuthorizationStatusNotDetermined = 0, 沒有決定是否授權

//     kABAuthorizationStatusRestricted,  受限制

//     kABAuthorizationStatusDenied,  拒絕

//     kABAuthorizationStatusAuthorized  授權

//     */

//    //請求使用者授權

//    if(ABAddressBookGetAuthorizationStatus()==kABAuthorizationStatusNotDetermined)

//    {

//        ABAddressBookRef book=ABAddressBookCreateWithOptions(NULL, NULL);

//        ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {

//            if (granted) {

//                NSLog(@"授權成功");

//            }

//            else

//            {

//                NSLog(@"授權失敗,%@",error);

//            }

//        });

//        

//    }

 

}

//擷取資料

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    //1.建立通訊錄

    ABAddressBookRef book=ABAddressBookCreateWithOptions(NULL, NULL);

    //擷取所有連絡人記錄

    CFArrayRef multivalues=ABAddressBookCopyArrayOfAllPeople(book);

    CFIndex count=CFArrayGetCount(multivalues);

    for (CFIndex i=0; i<count; ++i) {

        ABRecordRef record=CFArrayGetValueAtIndex(multivalues, i);

        CFStringRef first=ABRecordCopyValue(record, kABPersonFirstNameProperty);

        CFStringRef last=ABRecordCopyValue(record, kABPersonLastNameProperty);

        NSLog(@"%@,%@",(__bridge_transfer NSString*)first,(__bridge_transfer NSString*)last);

        ABMultiValueRef multiPhones=ABRecordCopyValue(record, kABPersonPhoneProperty);

        

        CFIndex countPhone=ABMultiValueGetCount(multiPhones);

        for (int j=0; j<countPhone; j++) {

            CFStringRef phone=ABMultiValueCopyValueAtIndex(multiPhones, j);

            NSLog(@"phone=%@",(__bridge_transfer NSString*)phone);

        }

        CFRelease(multiPhones);

    }

    CFRelease(multivalues);

    CFRelease(book);

    

}

 

 

 

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

@end

通訊錄(ios內建無介面)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.