我正在创建一个地址簿应用程序,其中所有的数据都存储到服务器,当用户提出要求时,服务器将恢复所有的联系人到iPhone。
我的问题是如何发送图像到服务器以及我将如何能够恢复联系人图像,我才知道我的服务器将提供我的base64加密格式的图像。
所以我可以帮助我如何以编程方式执行地址簿的图像保存和检索
发布于 2011-04-21 12:26:35
您需要将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);
https://stackoverflow.com/questions/5744017
复制