0

現在、デバイスのアドレス帳で利用可能な連絡先を利用するアプリを開発しています。

経由で連絡先のリストを取得したい。各連絡先の横にチェックボックスのオプションがあるアドレス帳。どうすればこれを行うことができるか教えてもらえますか?

4

2 に答える 2

4

フレームワークをABAddressBook調べます。連絡先のリストを配列として取得し、このリストを UItableview に入力すると、UITableViewCellAccessoryCheckmark選択した連絡先を表示するために使用できます。

以下のコードを参照してください。連絡先を含む配列を返します。ここで AddressObject はモーダル クラスです。

-(NSArray*)addressBookLoader
{
    CFErrorRef *error = NULL;

    NSMutableArray *arrayofAddressClassObjects =[[NSMutableArray alloc]init];

    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL,error);

    ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook);
    CFArrayRef sortedPeople =ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source, kABPersonSortByFirstName);

    //RETRIEVING THE FIRST NAME AND PHONE NUMBER FROM THE ADDRESS BOOK

    CFIndex number = CFArrayGetCount(sortedPeople);

    NSString *firstName;
    NSString *phoneNumber ;

    for( int i=0;i<number;i++)
    {

        ABRecordRef person = CFArrayGetValueAtIndex(sortedPeople, i);
        firstName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
        ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
        phoneNumber = (__bridge NSString *) ABMultiValueCopyValueAtIndex(phones, 0);

        if(phoneNumber != NULL)
        {

            AddressObject *obj = [[AddressObject alloc]init];
            obj.contactName = firstName;
            obj.contactNumber = phoneNumber;

            [arrayofAddressClassObjects addObject:obj];

        }


    }

    NSLog(@"x=%@",arrayofAddressClassObjects);

    return arrayofAddressClassObjects;

}
于 2013-03-19T09:25:01.750 に答える
2

アドレス帳にアクセスするには、ABAddressBook の使用を検討してください。

ABAddressBook 不透明型 (そのインスタンスはアドレス帳として知られています) は、アドレス帳へのプログラミング インターフェイスを提供します。アドレス帳は、複数のアプリケーションで使用され、人々の個人情報を格納するための集中型データベースです。アドレス帳データベースは、1 人または複数の人を含む「グループ」の概念もサポートしています。人々は複数のグループに属することができ、グループは他のグループに属することもできます。

ABAddressBook opaque 型は、Address Book データベースへの参照の作成、変更の保存、変更の破棄、および外部 (他のスレッドまたはプロセスによって) データベースに対して行われた変更の登録のための関数を提供します。

アドレス帳UITableViewの結果を に入力し、次のようにプログラムで各 UITableViewCell にチェックマークを追加します。

cell.accessoryType = UITableViewCellAccessoryCheckmark; 
于 2013-03-19T09:15:38.920 に答える