`
lihao312
  • 浏览: 479330 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IOS基础知识记录九(调用AddressBook地址博信息)

阅读更多
手机访问地址薄

1.首先加入包AddressBookUI、AddressBook并引入类。其次加入地址薄调用遵循的协议
#import <AddressBookUI/AddressBookUI.h>
#import <AddressBook/AddressBook.h>

//协议
ABPeoplePickerNavigationControllerDelegate


2.实现协议的部分方法,用来处理选择地址薄信息或者关闭地址操作等
//当地址关闭时处理部分信息: 如果关闭模态等,在第七记录中已经写过
-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker

//处理选择地址薄后怎么解析person信息
-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person


3.解析选择的地址薄信息
-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
    NSString *firstName, *lastName;
    
//对于地址薄中的firstName, lastName都是唯一的不会重复,故直接转化字符串
    firstName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
    lastName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
    
      //电话是多个, 要用数组来处理
    ABMultiValueRef telRef;
        telRef = ABRecordCopyValue(person,  kABPersonPhoneProperty);
    if (ABMultiValueGetCount(telRef) > 0) {
        NSString * tel = (__bridge NSString *)ABMultiValueCopyValueAtIndex(telRef, 1);
    }
    //Email 和电话类似
    ABMultiValueRef emailRef;
    emailRef = ABRecordCopyValue(person, kABPersonEmailProperty);
    if (ABMultiValueGetCount(emailRef) > 0) {
        email.text = (__bridge NSString *)ABMultiValueCopyValueAtIndex(emailRef, 0);
    }
    
 //而相对于地址来说比较复杂。 地址信息包含信息量比较大
    ABMultiValueRef addressRef;
    NSDictionary *addressDic;
    NSString *zipCode;
    
    addressRef = ABRecordCopyValue(person, kABPersonAddressProperty);
    if (ABMultiValueGetCount(addressRef) > 0) {
        addressDic = (__bridge NSDictionary *)ABMultiValueCopyValueAtIndex(addressRef, 0);
        zipCode = [addressDic objectForKey: @"ZIP"];
        
    }

    //关闭模态
    [self dismissViewControllerAnimated: YES completion: nil];
    return  NO;
}
0
0
分享到:
评论

相关推荐

    ios联系人信息增删改查

    实现了ios对于联系人信息的增加,删除,查询。同时可以调用AddressBook查看。

    iOS 获取手机通讯录

    iOS 获取手机通讯录的demo,很方便集成到项目,几行代码就可轻松调用 AddressBook *addressBook = [AddressBook shareAddressBook]; addressBook.delegate = self; [addressBook ...

    AddressBook 通讯簿设计 C++课程设计

    该软件为简单通讯录管理(项目名称:AddressBook) 一、 程序功能 各按钮功能如下: 查找记录: 以姓名为关键字,查找并显示该记录。若查找不到,则姓名显示为NULL。 添加记录: 将当前记录按姓名序加入通讯录,...

    AddressBook.rar

    AddressBook.rar

    android 手机电话薄Addressbook开发代码

    android 手机电话薄Addressbook开发代码

    addressBook

    《Qt4 图形设计与嵌入式开发》 学习了两个知识点

    安卓企业通讯录查询软件(Corporate Addressbook)

    GAL联系人地址薄 Corporate Addressbook GAL是指the Global Address List 意为全球联系人清单 是存在公司Exchange服务器上的联系人信息 你可以利用这款软件在Android安卓手机上查找别人的联系方式 或者将其保存到...

    AddressBook.swift

    AddressBook.swift

    addressbook

    自制地址簿拿出来和大家分享,对于学习struts hibernate jsp java相关知识的人,希望有一定帮助

    react-native-addressbook-ios:将本机模块桥接到 iOS 地址簿

    react-native-addressbook-ios 这是一个用于访问 iOS 地址的 React 目前仅支持 READ 访问,但希望添加完整的 CRUD 支持 演示 确保你已经 ,然后打开 examples/RCTAddressBook.xcodeproj 并点击 Run 用法 在访问...

    addressBook网上通讯录

    网上通讯录 addressBook网上通讯录 addressBook网上通讯录 addressBook网上通讯录 addressBook网上通讯录 addressBook网上通讯录 addressBook

    AddressBook

    这是一个我按照一本书上的案例做的一个通讯录,比较简单,实话说,虽然是可以保存我们的通讯方式(目前里能保存电话号码)但并不是很实用,因为查看的时候是一个一个的看,不方便!发上来的主要目的是为了让不是很懂...

    地址簿(AddressBook)小程序

    自己做的作业,Java 小程序,AddressBook管理,Netbeans工程

    《iOS6开发指南》精彩书摘

    首先介绍了访问通讯录所需要的框架,然后介绍了使用AddressBook框架如何读取联系人的信息,具体包括联系人记录、单值多值属性、图片属性的读取;接下来介绍了如何使用该框架将联系人信息写入数据库,具体包括联系人...

    IOS独立通讯录

    这是本人自学以后写的一个独立于IOS自带AddressBook的通讯录小项目,实现了登陆、显示联系人、删除联系人、增加联系人、修改联系人、编辑联系人(可编辑姓名、电话、头像),并能将联系人备份到IOS联系人以及从IOS...

    AddressBook_java代码

    自己写的代码 通讯录 有详细的注释 包含了姓名、住址、联系电话、分组等信息 可以通过姓名等方式查找

Global site tag (gtag.js) - Google Analytics