2013-01-12 33 views
2

我正在使用下面的代碼來獲取字符串格式的名字,但希望將其放入數組中,因爲它包含地址簿聯繫人和Facebook聯繫人。所以我可以像array [0],array [1]那樣檢索它們,因此plz幫助我完成這個任務。將地址簿中的聯繫人存儲在iPhone中的數組中

ABAddressBookRef ab=ABAddressBookCreate(); 

    NSArray *arrTemp=(NSArray *)ABAddressBookCopyArrayOfAllPeople(ab); 

    NSMutableArray *arrContact=[[NSMutableArray alloc] init]; 
     for (int i=0;i<[arrTemp count];i++) 
      { 
    NSMutableDictionary *dicContact=[[NSMutableDictionary alloc] init]; 
    NSString *str=(NSString *) ABRecordCopyValue([arrTemp objectAtIndex:i],    kABPersonFirstNameProperty); 
    @try 
     { 
    [dicContact setObject:str forKey:@"name"]; 
     } 
    @catch (NSException * e) { 
    [dicContact release]; 
    continue; 
    } 

    [dicContact release]; 

    NSLog(@"%@",str); 

回答

1

您可以存儲你的地址簿中的所有聯繫人的NSMutableArray像波紋管: -

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

我只是谷歌它,我得到這個訪問這個類似的問題: -

how can I Add a ABRecordRef to a NSMutableArray in iPhone?

storing adressbook contacts into a nsdictionary

+0

謝謝尼廷的答案。 –

+0

雅我已經打勾權和upvoting它聲稱聲望必須是至少15 –

+0

它的好,謝謝ambuj –

相關問題