Рисование UIView с фона NSThread?

Я занимаюсь разработкой краски GL.

Чтобы нарисовать любой объект, я использую UIView, который реализован.

Начиная метод краски:

- (void)viewDidLoad {
    ....
    [NSThread detachNewThreadSelector:@selector(paintingObjects) 
                             toTarget:self
                           withObject:nil];
}

- (void)paintingObjects {
    while(1) {
        [NSThread sleepForTimeInterval:2];
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        ImplementedView *tmp = [self view];
        [tmp draw];
        [pool drain];
    }
}

Но это не работает (не рисует объект).

Что здесь не так?

Пожалуйста, помогите мне, ребята.

Заранее спасибо.

1 ответ

Решение

Все классы пользовательского интерфейса не являются поточно-ориентированными и должны вызываться из основного потока:

- (void)paintingObjects {
    while(1) {
        [NSThread sleepForTimeInterval:2];
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        ImplementedView *tmp = [self view];
        [tmp performSelectorOnMainThread:@selector(draw) withObject:nil waitUntilDone:YES];
        [pool drain];
    }
}

В этом случае вам лучше использовать NSTimer,

Другие вопросы по тегам