У меня типичное приложение стиля «сверло» с 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. –