从iPhone用户地址簿获取随机名称和号码(相同的联系人)

时间:2010-06-06 05:08:50

标签: iphone-sdk-3.0 addressbook

我在iPhone SDK中使用地址簿的经验很少。

是否有人有代码片段或知道代码以获取人名和编号例如'Fred Smith - 027 292 2112'。我对我尝试过的东西没有太多运气。

我想以编程方式实现此目标,而不是让用户决定(随机选择此人)。我也不想显示联系人选择器

任何教程链接,或任何感激之情。

提前致谢

萨姆

1 个答案:

答案 0 :(得分:0)

此代码将从您的地址簿中随机联系。然后它会将第一个名字和姓氏以及第一个电话号码添加到UILabel属性(第一个,最后一个和电话)。

要使其工作,您必须先导入这些头文件:

#import <AddressBook/AddressBook.h>
#import <stdlib.h>

导入stdlib.h以便能够使用arc4random。

- (IBAction)randomContact:(id)sender {
    ABAddressBookRef addressBook = ABAddressBookCreate();
    NSArray *people = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

    // randomize an index
    NSInteger i = [people count];
    i = arc4random() % i;

    // get first and last name
    first.text = (NSString *)ABRecordCopyValue([people objectAtIndex:i], kABPersonFirstNameProperty);
    last.text = (NSString *)ABRecordCopyValue([people objectAtIndex:i], kABPersonLastNameProperty);


    // get first phonenumber
    ABMultiValueRef multi = ABRecordCopyValue([people objectAtIndex:i], kABPersonPhoneProperty);
    phone.text = (NSString*)ABMultiValueCopyValueAtIndex(multi, 0);


    [people release];
}