0

こんにちは、アプリケーションのアドレス帳に連絡先を追加したいと考えています。名前と電話番号のテキスト フィールドがある場合と同様に、ボタンをクリックするとアドレス帳に追加されます。

私は、stackoverflow How to add a contact from my app to the iOS address bookで多くの質問をしましたが、理解できなかったので、サンプルコードでこれを実装する方法を誰か教えてもらえますか、これに関するチュートリアルリンクがあれば、それは素晴らしいでしょう.

4

1 に答える 1

0

画像付きの人物の住所を追加したい場合は、これが役に立ちます。
まず、ABAddressBookRefオブジェクトを作成する必要があります。

ABAddressBookRef addressBook = ABAddressBookCreate();
    ABRecordRef person = ABPersonCreate();
    // Add Person Image

    NSData *dataRef = UIImagePNGRepresentation(personImageView.image);
    ABPersonSetImageData(person, (CFDataRef)dataRef, nil);

    CFErrorRef  anError = NULL;
    // Full Name, Company Name, Designation Property

    ABRecordSetValue(person,kABPersonFirstNameProperty,full_name,&anError);
    ABRecordSetValue(person, kABPersonOrganizationProperty, companyLabel, &anError);
    ABRecordSetValue(person, kABPersonJobTitleProperty, designation, &anError);
    // Multi value Address Property

    ABMutableMultiValueRef multiAddress = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);'
    NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init];

    [addressDictionary setObject:@"Chicago" forKey:(NSString *)kABPersonAddressCityKey];
    [addressDictionary setObject:@"IL" forKey:(NSString *)kABPersonAddressStateKey];
    [addressDictionary setObject:@"60654" forKey:(NSString *)kABPersonAddressZIPKey];

    ABMultiValueAddValueAndLabel(multiAddress, addressDictionary, (CFStringRef)@"Address", NULL);
    ABRecordSetValue(person, kABPersonAddressProperty, multiAddress,&anError);
    CFRelease(multiAddress);

    ABMutableMultiValueRef websiteMultiValue = ABMultiValueCreateMutable(kABPersonURLProperty);
    ABMultiValueAddValueAndLabel(websiteMultiValue, web_URL, (CFStringRef)@"Website", NULL);
    ABRecordSetValue(person, kABPersonURLProperty, websiteMultiValue, &anError);


    ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABPersonEmailProperty);
    ABMultiValueAddValueAndLabel(emailMultiValue, email, (CFStringRef)@"Email", NULL);
    ABRecordSetValue(person, kABPersonEmailProperty, emailMultiValue, &anError);

    ABAddressBookAddRecord(addressBook, person, &anError);

これが役に立てば幸いです..

于 2013-05-24T05:41:19.687 に答える