2010-07-12 54 views
0

我仍然试图用NSDictionaries包裹头脑,并进入了一种情况,我相信我需要使用它。本质上,我想将与每个联系人关联的所有电话号码存储到字典中。到目前为止,我有这样的:将地址簿联系人存储到nsdictionary中

ABAddressBookRef addressBook = ABAddressBookCreate(); 
NSArray *thePeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook); 
for (id person in thePeople) 
{ 
    ABMultiValueRef phones =(NSString*)ABRecordCopyValue(person, kABPersonPhoneProperty); 
    NSString* name = (NSString *)ABRecordCopyCompositeName(person); 
    for (CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) 
    { 
     NSString *phone = [(NSString *)ABMultiValueCopyValueAtIndex(phones,i) autorelease]; 
    } 
} 

我想知道如何使用NSDictionary中存储的每个人,然后一个与此人相关联的每个电话值的数组。

回答

0

你想做什么?

你可以把所有的名字和PHONENUMBERS到这样的plist中:

ABAddressBookRef addressBook = ABAddressBookCreate(); 
NSArray *thePeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook); 
NSMutableArray* allPeoplesDicts = [NSMutableArray array]; 
for (id person in thePeople) 
{ 
    ABMultiValueRef phones =(NSString*)ABRecordCopyValue(person, kABPersonPhoneProperty); 
    NSString* name = (NSString *)ABRecordCopyCompositeName(person); 
    NSMutableArray* phones = [[NSMutableArray alloc] init]; 
    for (CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) 
    { 
     NSString *phone = [(NSString *)ABMultiValueCopyValueAtIndex(phones,i) autorelease]; 
     [phones addObject:phone]; 
    } 
    NSDictionary* personDict = [[NSDictionary alloc] initWithObjectsAndKeys:name,@"Name",phones,@"PhoneNumbers",nil]; 
    [phones release]; 
    [allPeoplesDicts addObject:personDict]; 
    [personDict release]; 
} 
相关问题