Простой сценарий: фоновый поток вычисляет данные для отображения в реальном времени в основном потоке.
Данные: динамические / переменные данные, которые преобразуются втип NSString в фоновом потоке, отображаемый в UILabel (или NSLabel) в основном потоке.
Моя собственная среда: iOS 4+ (также относится к OS X) с использованием Xcode 4+.
Дизайн: фоновый поток (через NSOperation / NSOperationQueue) отправляет данные / итерации в основной (хост) поток через DELEGATION.
Примечание: основной поток* видит ** эти данные во время чтения ( через NSLog () ) ....
Однако интерфейс UIView (или NSView) делает НЕ обновление / итерация в реальном времени.
Запрос парадигмы: аналогично цифровым часам реального времени .... отметьте, отметьте ... вы видите, как обновляются секунды,Мне нужно сделать то же самое со скоростью, положением и т. Д. Я попробовал вызов метода 'setNeedsDisplay
'; не имеет никакого эффекта .
Вопрос: Каков предпочтительный способ отображения в потоке MAIN в реальном времени данных, которые вычисляются на внутреннем потоке?
С уважением, Рик.
Я получил решение.Вы помещаете это в подпрограмму NSOperation (фон):
dispatch_async(dispatch_get_main_queue(), ^ {
myMainThreadViewController.UILabel.text = theData;
});