При использовании NSTimer в классе A не может вызвать метод из другого места - PullRequest
1 голос
/ 17 сентября 2011

Вот код, который я вызываю, чтобы запустить таймер для вызова метода "tick:" в классе A (он вызывает НЕ в основном потоке):

    - (id)init {

        self = [super init];

        if (self != nil) {

        self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0f 
target:self selector:@selector(tick:) userInfo:nil repeats:YES];

        NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
        [currentRunLoop run];
        }

      return self;
    }

И таймер работает отлично. Но если попытаться получить доступ к методу doSomething (тот же экземпляр класса classA) в том же потоке, то метод doSomething не вызывает.

Почему? Как решить проблему?

1 Ответ

0 голосов
/ 17 сентября 2011

Как называется селектор doSomething:?

В любом случае, вы должны попробовать [classAinstance performSelectorOnMainThread:@selector(doSomethingOnMainThread:) waitUntilDone:YESORNO];

...