Я пытаюсь загрузить изображения в фоновом режиме с помощью gcd. Моя первая попытка не работает:Загрузить UIImage из файла с помощью центральной центральной отправки
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
// create UI Image, add to subview
});
});
закомментировать код фона очереди, оставляя только основной очереди отправки блок не работает:
dispatch_async(dispatch_get_main_queue(), ^{
// create UI Image, add to subview
});
Есть некоторые хитрости, чтобы делать вещи внутри щ блок gcd?
В ответ на комментарий mattjgalloway я просто пытаюсь загрузить большое изображение в фоновом потоке. Вот полный код, который я пытался изначально:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0), ^{
UIImage* img = [[UIImage alloc] initWithContentsOfFile: path];
dispatch_async(dispatch_get_main_queue(), ^{
imageView = [[[UIImageView alloc] initWithImage: img] autorelease];
imageView.contentMode = UIViewContentModeScaleAspectFill;
CGRect photoFrame = self.frame;
imageView.frame = photoFrame;
[self addSubview:imageView];
});
});
Я упрощена так, что я бегала все внутри главной очереди, но даже тогда он не работает. Я полагаю, что если я не смогу заставить все работать в главной очереди, это не повлияет на работу в фоновом режиме.
================ ОБНОВЛЕНИЕ ==============
Я попытался выше технику (GCD и все) в совершенно новом проекте, и он действительно работает так, как ожидалось. Просто не в моем текущем проекте. Поэтому мне придется сделать медленный, болезненный процесс устранения, чтобы выяснить, что происходит. Я использую эту фоновую загрузку для отображения изображений в uiscrollview. Оказывается, биты изображений иногда появляются, но не всегда. Я доберусь до конца этого ...
=============== ОБНОВЛЕНИЕ ===============
Похоже, что проблема связана с UIScrollView, все это внутри. Я думаю, что материал не становится нарисованным/освеженным, когда он должен
Что вы пытаетесь достичь? Вы действительно не хотите просто отправлять в фоновый режим, а затем в основную очередь - чего вы ожидали от этого? Покажите нам еще один код того, что вы пробовали. – mattjgalloway
@mattjgalloway Просто пытается загрузить изображение в фоновом режиме. Более подробный код, вставленный выше. – morgancodes
Что не работает? – mattjgalloway