Как я могу убедиться, что моя функция выполняется только в основном потоке? Она обновляет элементы пользовательского интерфейса.
Считается ли такая функция "плохой"?
-(void)updateSomethingOnMainThread {
if ( ![[NSThread currentThread] isEqual:[NSThread mainThread]] )
[self performSelectorOnMainThread:_cmd withObject:nil waitUntilDone:NO];
else {
// Do stuff on main thread
}
}
Я написал ее так, чтобы избежать наличия второй функции, изначально она была такой:
-(void)updateSomethingOnMainThread_real {
// Do stuff on main thread
}
-(void)updateSomethingOnMainThread {
[self performSelectorOnMainThread:@selector(updateSomethingOnMainThread_real) withObject:nil waitUntilDone:NO];
}