2010-07-12 1 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

Что вы пытаетесь сделать?

Вы можете поместить все имена и номера телефонов в 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]; 
}