UIView не отображает изменение фоновых данных в режиме реального времени - PullRequest
0 голосов
/ 19 апреля 2011

Простой сценарий: фоновый поток вычисляет данные для отображения в реальном времени в основном потоке.

Данные: динамические / переменные данные, которые преобразуются втип 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; });

...