2012-02-20 23 views
1

私のプロジェクトでは、サーバーから画像をダウンロードする画像ビューを使用しています。 iOS 4では正常に動作していますが、iOS 5には表示されません。iOS画像の解像度の問題

iOS 5を使用しているときに注意する必要がある最小解像度はありますか?サーバからの画像の解像度は72 dpiです私はここに画像のURL からコードをダウンロードします画像表示にカテゴリを書かれているのiOS 4ではなく、iOSの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両方)を解放、通常、あなたのImageDownloaderをアロケーションしてくださいあなたはいくつかのコードを共有している場合に役立つだろうiOS5またはiOS4の場合 –

+0

@ Gaz_Edgeコードスニペットを追加しました。ありがとう – Swapnil

+0

あなたはiphoneの開発に新しいですか? ARCを使用しているのか、手動でメモリを管理しているのかなど、メモリ管理用語の使用が矛盾しているようです(つまり、自動解放など)。 –

答えて

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

接続は同期ですか、非同期ですか。

asyncの場合、connectionDidFinishLoadingメッセージで解放される可能性があるため、ImageDownloaderを自動解放しないでください。実際に表示する画像に違いはありません -

それがダウンロードを終了すると、その後

+0

ああ私にそれを打つ! –

+0

..........何? – Martin