2010-07-12 7 views
0

저는 NSDictionaries를 사용하여 주위를 감싸고 있으며, 하나를 사용해야한다고 생각하는 상황에 처했습니다. 본질적으로 각 연락처와 관련된 모든 전화 번호를 사전에 저장하고 싶습니다. 지금까지 나는이있다 : 나는 각 사람, 그리고 그 사람과 연결된 각 전화 값의 배열을 저장하기 위해있는 NSDictionary를 사용하는 방법에 대해 궁금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]; 
    } 
} 

.

답변

0

무엇을하려하십니까?

이 같은 PLIST에 모든 이름과 PHONENUMBERS를 넣을 수 있습니다 :

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