2011-08-18 1 views
0

내 앱 사용자가 라이브러리에서 사진을 찍거나 사진을 찍을 수 있도록 허용하고 있습니다. 선택한 경우 이미지 데이터를 가져와 문자열로 변환해야 웹 서비스로 보낼 수 있습니다.사진 데이터를 nsstring으로 변환하면 nil이 반환됩니다.

내가 현재 가지고있는 문제는 인코딩을 UTF8로 설정할 때 [NSString initWithData :]가 nil을 반환한다는 것입니다. XML 메시지를 UTF8로 설정해야합니다.

NSString *dataString = [[NSString alloc] initWithData:UIImageJPEGRepresentation(theImage, 1.0) encoding:NSUTF8StringEncoding]; 

어떤 조언을 해주셔서 감사합니다!

답변

0

initWithData : encoding : 메서드를 사용하여 UIImage를 NSString으로 변환 할 수 없습니다. 이 메소드는 문자열의 데이터를 NSString (예를 들어 텍스트 파일)으로 변환하기위한 것입니다.

모든 종류의 이진 데이터를 NSString으로 변환하려는 경우 사용할 수있는 인코딩이 있습니다. Base64가 널리 사용됩니다. 또한 서버에는 보낸 내용을 디코딩 할 수있는 기능이 있어야합니다.

또한 대부분의 경우 이미지를 서버에 보내려면 이전과 같이 이진 형식으로 POST를 수행하면됩니다.

+1

감사 xuzhe. 이 인스턴스에서 이미지를 POST 변수로 보낼 수 없으며 인코딩하고 웹 서비스 메시지의 일부로 첨부해야합니다. 하지만 적어도 내가 틀렸다는 것을 알았고 Base64로 이미지 데이터를 인코딩해야합니다. 전에 비슷한 것을 한 적이 있다면 좋은 도서관을 추천 할 수 있습니까? – bennythemink

+0

안녕하십니까. 자세한 내용은이 링크로 이동하십시오. http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html. 또한 기사 하단에 "NSData + Base64"라는 NSData 범주를 다운로드 할 수 있습니다. NSData를 base64로 인코딩 된 NSString으로 변환하는 것은 매우 쉽습니다. – xuzhe

+0

다시 한번 감사드립니다. xuzhe : D – bennythemink