2009-09-09 3 views
0

XML을 통해 원격 서버에서 데이터를 검색하는 아이폰 애플리케이션을 만들었습니다. XMl에서 이미지를 검색하고 서버에 저장된 아이폰 애플리케이션에 이미지를 표시해야합니다. 이것이 어떻게 달성 될 수 있도록 도와주십시오.XML을 통해 아이폰 앱에 이미지 가져 오기

+0

이것은 코드를 작성하는 데 매우 광범위한 질문입니다. 구체적으로 어떤 부분에서 문제가 있습니까? –

답변

2

이 문제가 발생한 순간에 응용 프로그램을 작성하고 있습니다. 이미지 데이터 자체를 포함하지 않고 XML의 이미지에 URL을 넣어서 해결했습니다.

<images> 
    <image url="http://www.example.com/images/12345.jpg" /> 
    <image url="http://www.example.com/images/67890.jpg" /> 
</images> 

은 내가 < 이미지> 태그를 쳤을 때 내가 XML을 구문 분석하고있어로서 내가 NSMutalbeArray에 URL을 저장 : 예를 들어 내 XML은 다음과 같이 보입니다. xml 구문 분석 할 때 배열을 통해 루프 및 NSURLConnection 사용하여 각 이미지를 가져옵니다.

내가이 페이지에서있는 NSURLConnection을 사용하는 방법 일 PS : 내 응용 프로그램에서 https://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

3

을 내가 모두 전송 및 XML을 통해 이미지를 수신하고 있습니다. 이것을 용이하게하기 위해 base64 인코딩을 사용하여 이미지를 인코딩/디코딩합니다. 내 인 코드/디코드 메소드는 2 개의 objective-c 카테고리, NSData의 경우 1, NSString의 경우 1에 있습니다. 각각의 데이터 유형에 대해 이러한 메소드를 호출합니다. 아래 예제를 나열했습니다. 메서드는 [NSData base64Encoding] 및 [NSString base64Decoding]입니다.

서버로 전송

...

NSLog(@"Compressing Image: JPEG 80%"); 
NSData *imgData = UIImageJPEGRepresentation(scaledImage, 0.8f);  
NSString *b64String = [imgData base64Encoding]; 

내 "b64String"변수가 지금 내 이미지의 base64로 인코딩 된 문자열 표현을 가지고있다. 이제 이것을 XML로 감싸고 일반 NSURLConnection을 사용하여 서버로 보낼 수 있습니다.

여기,

당신은 일반 XML 파싱을 할 것입니다 내 "값이"변수는 서버에서 base64로 문자열을 보유 (서버에서 인코딩 된 텍스트베이스 64를 전송하고 있는지 확인) ... 단절에서 수신 .

NSData *imgData = [value base64Decoding]; 
UIImage *image = [[UIImage alloc] initWithData:imgData]; 

당신은, 오브젝티브 C에 몇 가지 일반적인 base64로 인코딩/디코딩 알고리즘을 찾아 내 방법을 게시 나를 좋아하면 것인지 알려 할 수 있어야한다 (그들은 좀 오래 그래서 여기를 obmitted있다).

+0

안녕하세요. 저는이 상황에 처한 상황에서 도움을 요청하고 어떻게 수행했는지보고 싶습니다. 나는 그것이 길 수도 있다는 것을 이해하지만, 그것은 분명히 내 친구와 나를 도울 것입니다. 건배 – Pavan

관련 문제