DetailViewController
과 UIImageView
, UIWebView
및 약간 UILabel
을 포함하는 일반적인 "드릴 다운"스타일 앱이 있습니다. 문제는 imageView
이로드하는 데 시간이 오래 걸리는 것입니다. 그것은 잠시 동안 흰색 (배경색)이며, 마침내 3-5 초 후에로드됩니다 (아마 다운로드에 걸리는 시간).UIImage imageWithData에 몇 분이 걸립니다.
코드는 다음과 같습니다
- (void)loadSummary {
self.dogFood = [[IKFetcher sharedFetcher] fetchDogFoodInfoForId:self.dogFoodId];
self.dogFoodAnalysisArray = [[IKFetcher sharedFetcher] fetchDogFoodAnalysisArrayForId:self.dogFoodId];
self.dogFoodRating = [[IKFetcher sharedFetcher] getAvgDogFoodRatingForId:self.dogFoodId];
if ([self.dogFood.dfImageUrl length] != 0) {
self.dogFoodImage.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:self.dogFood.dfImageUrl]]];
}
}
및 loadSummary
에 대한 호출이 dispatch_async
전화에 싸여있다.
이미지를 다운로드 할 때까지 앱을 기다리려면 어떻게해야합니까?
나를 용서해주십시오. 그러나 당신이 묘사 한 코드 또는 의사 코드를 제공 할 수 있습니까? 그것은'NSURLConnection' 동기식이어야합니까? –
아니, 그 모든 목적을 이길 것입니다. - Apple은 NSURLConnection의 사용을 시연하는 좋은 코드를 가지고 있습니다. 또는 여기에서 백그라운드 다운로더 예제를 얻으실 수 있습니다 : https://github.com/mattneub/Programming-iOS-4-Book-Examples/tree/master/p754p772downloader – matt
SDWebImage를 쉽게보십시오. HTTP를 통해 이미지를 백그라운드로 다운로드하기위한 드롭 인. –