2012-02-20 4 views
1

내 프로젝트에서 서버에서 이미지를 다운로드하는 이미지보기를 사용 중입니다. iOS 4에서는 정상적으로 작동하지만 iOS 5에는 표시되지 않습니다.iOS 이미지 해상도 문제

iOS 5를 사용하는 동안주의해야 할 최소 해상도가 있습니까? 서버에서 오는 이미지 중 하나는 작동하는 72 dpi 해상도입니다. 아이폰 OS 4하지만 나는 이미지 URL 여기 에서 코드를 다운로드합니다 이미지보기로 카테고리입니다 작성한

아이폰 OS 5. 코드 : 다운 파일에서

- (void) setImageFromServer:(NSString *) imageURL 
{ 
    if (imageURL!=nil) 
    { 
     ImageDownloader *imageDownloader = [[[ImageDownloader alloc] init] autorelease]; 
     imageDownloader.requester = self; 
     [imageDownloader startDownload:imageURL]; 
    } 
} 


- (void) didDownloadImageData:(NSData *) data forImageURL:(NSString *) imageURL 
{ 
    [self setImage:[UIImage imageWithData:data]]; 
} 

:

- (void) startDownload:(NSString *)MyimageURL { 

    self.imageData = [NSMutableData data]; 
    self.currentImageURL = MyimageURL; 

    self.downloadConnection = [NSURLConnection connectionWithRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:self.currentImageURL]] 
                  delegate: self]; 
    [self.downloadConnection start]; 
} 



- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    [imageData appendData:data]; 
} 

- (void) connectionDidFinishLoading:(NSURLConnection *)connection { 
    [self.requester didDownloadImageData:self.imageData forImageURL:self.currentImageURL]; 
    isRewardTagImageAvailable = YES; 
    [connection release]; 
    connection = nil; 
} 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ 

} 
+0

도움이 될 (모두 didFailWithError을 connectionDidFinishLoading)를 해제 - 정말 화상을 표시하는 사이에 차이점이 없습니다 iOS5 또는 iOS4에서 –

+0

@Gaz_Edge 코드 스 니펫을 추가했습니다. 감사합니다 – Swapnil

+0

당신은 아이폰 개발에 새로운가요? ARC를 사용하거나 수동으로 메모리를 관리하는 경우 메모리 관리 용어가 일관성없이 사용됩니다 (예 : autorelease 등). –

답변

0

이것이 문제가되는지 잘 모르겠지만 대개 NSURLRequest를 작성할 때 다음과 같이 먼저 초기화하고 요청을 NSURLConnection에 삽입하십시오. 이런 식으로. 또한 일단 NSURLConnection에서 initWithRequst를 실행하면 연결 시작을 알릴 필요가 없으므로 자동으로 실행됩니다.

NSURLRequest *tempReq = [[NSURLRequest alloc] initWithURL:someURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0]; 
NSURLConnection *tempCon = [[NSURLConnection alloc] initWithRequest:tempReq delegate:self]; 

나는 그것이 문제가되지한다는 의미하지만 촬영하여, 코드를 찾고 있기 때문에 잘 보이는 것을 제공합니다.

나는 didFailWithError 방법을 추가하는 것이 좋습니다 것입니다 : 당신의 파일에

-(void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error; 

을뿐만 아니라 어쩌면 연결뿐만 아니라 어떤 이유로 실패 때문이다.

+0

iOS 5.0에서 코드를 테스트했지만 iOS 5.0.1에서는 작동하지 않습니다. API/이미지 dpi 문제가 있습니까? – Swapnil

+0

아니야해서는 안됩니다. 나는 비슷한 과정을 사용하여 항상 모든 이미지를 잡고 아무런 문제가 없었다. 내가 일반적으로 가지고있는 문제는 배열이나 NSMutableData에 대한 메모리를 할당하는 것을 잊는 것이다. 그 이외에는 클래스간에 전달하려고 할 때 무언가를 잃어 버리는 것일 수도 있습니다. – MZimmerman6

+0

나는 당신이하려고하는 일을하는 예제 프로젝트를 만들었고 인터넷에서 이미지를 가져 와서 UIImageView로 전달하는 데 문제가 없었습니다. 네가 원하면 내가 너에게 보낼 수있어. – MZimmerman6

0

연결이 동기식입니까, 비동기식입니까?

비동기 인 경우 connectionDidFinishLoading 메시지에 대해 릴리스 될 가능성이 있으므로 ImageDownloader를 자동 해제하면 안됩니다.

시도 정상적으로 ImageDownloader를 ALLOC하기 위해서는 다운로드를 완료 할 때 다음 몇 가지 코드를 공유하는 경우

+0

아 나는 그것에 이겼다! –

+0

......... 뭐라고 요? – Martin