2011-04-21 2 views
1

모든 데이터가 서버에 저장되고 사용자가 묻는 메시지가 표시되면 서버에서 모든 연락처를 iPhone으로 복원한다는 주소록 응용 프로그램을 만듭니다.주소록 연락처에 대한 이미지 저장

내 문제는 이미지를 서버로 보내는 방법과 연락처 이미지를 복원하는 방법입니다. 내 서버가 Base64 암호화 형식으로 이미지를 제공한다는 것을 알게되었습니다.

그래서 어느

답변

5

당신은을 NSData에서 base64로 이미지를 변환 할 필요가 사전에

감사를 저장하고 주소록, 프로그램에 대한 검색 이미지를 수행 한 다음 연락처, 검사에 설정할 수있는 방법을 나에게 도움이 될 수 있습니다 "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); 
+0

감사합니다. Saurabh,하지만 직접 복원 할 서버에서 form64를 base64로 직접 가져갈 예정이라면 어떻게 할 수 있습니까? 아니면 그냥 nsdata로 변환 한 다음 응용 프로그램에서 사용할 필요가 있습니까? –

+1

이 URL http://www.cocoadev.com/index.pl?BaseSixtyFour는 base64 문자열을 nsdata로 변환하는 데 도움을줍니다 .. – Saurabh