Адресная книга Сохранить изображение для контактов программно - PullRequest
1 голос
/ 21 апреля 2011

Я создаю приложение адресной книги, в котором все данные хранятся на сервере, и когда пользователь спросит, сервер восстановит все контакты на iPhone.

Моя проблема в том, как отправить изображение на сервер, а такжеКак то, как я смогу восстановить образ контакта, я узнал, что мой сервер предоставит мне образ в формате шифрования base64.

Так может ли кто-нибудь помочь мне, как выполнить сохранение и поиск изображений для адресной книги программным способом

1 Ответ

5 голосов
/ 21 апреля 2011

Вам необходимо преобразовать изображение base64 в nsdata, а затем вы можете установить его для контакта, отметьте "ABPersonSetImageData" в следующем коде.

ABRecordSetValue(newPerson, kABPersonOrganizationProperty,data.name, &error);

        ABMutableMultiValueRef multiURL = ABMultiValueCreateMutable(kABMultiStringPropertyType);
        ABMultiValueAddValueAndLabel(multiURL, homePageURL, kABPersonHomePageLabel, NULL);
        ABRecordSetValue(newPerson, kABPersonURLProperty, multiURL,&error);
        CFRelease(multiURL);

        ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
        ABMultiValueAddValueAndLabel(multiPhone, contactNumber, kABPersonPhoneMobileLabel, NULL);
        ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone,&error);
        CFRelease(multiPhone);

        ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType);
        ABMultiValueAddValueAndLabel(multiEmail, emailIDs, kABHomeLabel, NULL);
        ABRecordSetValue(newPerson, kABPersonEmailProperty, multiEmail, &error);
        CFRelease(multiEmail);

        ABMutableMultiValueRef multiAddress = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
        NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init];
        [addressDictionary setObject:toAddress forKey:(NSString *) kABPersonAddressStreetKey];
        [addressDictionary setObject:@"Amsterdam" forKey:(NSString *) kABPersonAddressCityKey];
        [addressDictionary setObject:@"Amsterdam" forKey:(NSString *) kABPersonAddressStateKey];
        [addressDictionary setObject:@"00000" forKey:(NSString *) kABPersonAddressZIPKey];
        [addressDictionary setObject:@"Netharland" forKey:(NSString *) kABPersonAddressCountryKey];
        ABMultiValueAddValueAndLabel(multiAddress, addressDictionary, kABHomeLabel, NULL);
        ABRecordSetValue(newPerson, kABPersonAddressProperty, multiAddress,&error);
        CFRelease(multiAddress);

        NSData *data1 = UIImagePNGRepresentation([UIImage imageNamed:data.titleImg]);
        ABPersonSetImageData(newPerson, data1, &error);


        ABAddressBookAddRecord(iPhoneAddressBook, newPerson, &error);
        ABAddressBookSave(iPhoneAddressBook, &error);
...