2010-07-12 4 views
0

Je suis toujours en train d'essayer de garder la tête en utilisant des NSDictionaries, et je suis arrivé dans une situation où je crois que je dois en utiliser un. Essentiellement, je voudrais stocker tous les numéros de téléphone associés à chaque contact dans un dictionnaire. jusqu'à présent, j'ai ceci:stocker des contacts de carnet d'adresses dans un 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]; 
    } 
} 

Je me demandais comment utiliser un NSDictionary pour stocker chaque personne, puis un tableau de chaque valeur de téléphone qui est associé à cette personne.

Répondre

0

Qu'est-ce que vous essayez de faire?

Vous pouvez mettre tous les noms et phoneNumbers dans un plist comme celui-ci:

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]; 
} 
Questions connexes