2013-02-24 2 views
1

Предположим, у нас есть один UIViewController, назовите его A, в viewDidLoad этого VC мы добавим к нему два UIViewControllers (B, C). Теперь, чтобы сделать UI гладко в viewDidLoad А мы делаем некоторые НОД работыGCD, очереди, влияющие на дочерние UIViewcontrollers, реентерабельные

dispatch_queue_t queue = dispatch_queue_create("myqueue", NULL); 
    dispatch_async(queue, ^{ 
    // Create webviews, do some setup here, etc etc 
    // Perform on main thread/queue 
    dispatch_async(dispatch_get_main_queue(), ^{ 
    // this always has to happen on the main thread 
    [self.view addSubview:webView]; 
    }); 
}); 

Так ParentViewController несколько лучше в UI rendenring.

Мой вопрос: достаточно ли работы GCD? или я должен сделать то же самое в the0 viewDidLoad ребенка viewcontrollers? просто потому, что я создал эти дочерние VC на фоновом потоке, это означает, что мне не нужно делать никаких GCD wokr? Я пытаюсь сделать свой интерфейс максимально восприимчивым, но не загромождать код. Я предполагаю, что другой способ формулировки будет состоять в том, что потоки GCD будут повторно введены? есть ли концепция reentrancy в iOS?

+0

ли вы на самом деле возникают проблемы производительности, которые вы исследовали и определили вид установок в качестве причины? – jrturton

+0

Ну, я смог повысить производительность, выполнив этот код. Я просто хотел узнать, влияют ли эти изменения на hiraqrcy of viewcontrollers. – Huang

ответ

0

Я не думаю, что добавление подзаголовка является значительным ударом по производительности. Кроме того, игра с представлениями (или UIKit в целом) должна выполняться в основном потоке пользовательского интерфейса. Насколько я знаю, это считается плохой практикой делать такие вещи на заднем плане.

Попробуйте сохранить данные GCD/Async для работы с процессорами или задачи неизвестной продолжительности, такие как загрузка чего-либо из Интернета.

Источник и дополнительная информация: Warning: UIKit should not be called from a secondary thread

+0

, но добавить общий вид не так, но, возможно, добавить uiwebview, загружающий какой-либо файл в формате pdf или какой-то сложный вид. – Huang

Смежные вопросы