新版本的Skype和一些其他聊天工具都提供了自动将地址簿联系人加入联系人列表的功能,本文通过例子简单地介绍如何使用Cocoa获取Mac OS X的地址簿中联系人的各种信息,这样你也可以在自己的程序中导入系统的地址簿中联系人的各种信息了。
获取联系人信息的大致例子如下:
#import <AddressBook/AddressBook.h>
如果在程序中使用地址簿,需要引用AddressBook/AddressBook.h
ABAddressBook *addressBook;
NSMutableArray *people;
ABPerson *person;
addressBook = [ABAddressBook sharedAddressBook];
people = [[NSMutableArray alloc] initWithArray:[addressBook people]];
person = [people objectAtIndex:anyindex];
获取的联系人属性如果是单一属性(比如姓名等):
NSString * anyproperty=[person valueForProperty:kAB***Property];
获取的联系人属性如果是数组(比如多个邮件地址):
ABMutableMultiValue *anypropertyvalue=[[person valueForProperty:kAB***Property] mutableCopy];
获取联系人图片:
NSImage *image = [[NSImage alloc] initWithData:[person imageData]];