2012-02-20 126 views
1

在我的項目中,我正在使用從服務器下載圖像的圖像視圖。它在iOS 4上工作正常,但它不在iOS 5上顯示。iOS圖像分辨率問題

使用iOS 5時是否有任何最低分辨率需要注意?來自服務器的圖像之一是72 dpi分辨率,適用於iOS 4的但不是在iOS 5

我已經寫類別圖像視圖將從圖像URL 這裏下載代碼的代碼片段:

- (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

倘使你共享一些代碼 - 也確實應該顯示圖像之間沒有差異在iOS5或iOS4中 – 2012-02-20 14:44:04

+0

@Gaz_Edge我添加了代碼片段。謝謝 – Swapnil 2012-02-20 14:57:36

+0

你是iphone新手嗎?使用ARC或手動管理內存似乎存在對內存管理術語(即autorelease等)的不一致使用? – 2012-02-20 15:25:06

回答

0

我不確定這是否是一個問題,但通常當我寫一個NSURLRequest時,我首先按如下方式初始化事件並將請求插入到NSURLConnection中。有點像這樣。另外請注意,一旦initURithRequst在NSURLConnection中,您不必告訴該連接開始,它會自動。

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 2012-02-20 18:36:46

+0

不應該有。我一直使用類似的過程抓取圖像,並沒有真正遇到任何問題。我通常會遇到的問題是忘記爲數組或NSMutableData分配內存。除此之外,當你嘗試在類之間傳遞時,你可能會失去一些東西。 – MZimmerman6 2012-02-20 18:45:25

+0

我已經創建了一個示例項目,正在做你正在做的事情,並且我沒有問題從互聯網抓取圖像並將其傳遞給UIImageView。如果你願意,我可以發給你。 – MZimmerman6 2012-02-20 19:18:57

0

您的連接是同步還是異步?

如果是異步,則不應該自動釋放ImageDownloader,因爲它有可能會被釋放用於connectionDidFinishLoading消息。

嘗試正常的Alloc您ImageDownloader,然後釋放它,當它完成下載(無論是在connectionDidFinishLoadingdidFailWithError

+0

啊打我吧! – 2012-02-20 15:45:58

+0

..........什麼? – Martin 2012-02-20 15:51:15