2

以下のコーディングを使用して文字列形式で名を取得していますが、名簿の連絡先とFacebookの連絡先の両方が含まれているため、これを配列で取得したいと思います。array [0]、array [1]のように、そしてすぐにそれらを取得できるようにします。したがって、plzはこれを実行するのに役立ちます。

    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 );
4

1 に答える 1

1

次のように、addressBookのすべての連絡先を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];
}

私はそれをグーグルで検索しました、そして私はこれにこの同様の質問を訪問しました:-

iPhoneのNSMutableArrayにABRecordRefを追加するにはどうすればよいですか?

アドレス帳の連絡先を辞書に保存する

于 2013-01-12T09:19:22.150 に答える