Модальное оповещение в фоновом потоке в iPhone - PullRequest
1 голос
/ 15 декабря 2011

В моем приложении для iPhone основной поток создает фоновый поток, который выполняет большую работу и в некоторых случаях должен запрашивать у пользователя решение. Когда пользователю задают вопрос, фоновый поток должен перестать работать и должен продолжаться только после того, как пользователь ответил на вопрос.

Какой лучший способ сделать это?

приписка
Я попробовал ModalAlert из книги разработчиков iPhone Developer's, которая, как говорили, добилась цели, но мне не удалось. Похоже, что CFRunLoopRun (который должен остановить выполнение потока) просто не останавливает фоновый поток.

У меня был такой код

+(void) main
{
    [NSThread detachNewThreadSelector:@selector(startSync) toTarget:self withObject:nil];
}

+(void) startSync
{
    CFRunLoopRun();
    NSLog("Hi");
}

и NSLog были сразу выполнены после запуска потока syncStart. Weird.

1 Ответ

1 голос
/ 15 декабря 2011

Вы пробовали NSObject performSelectorOnMainThread:withObject:waitUntilDone: метод?

Представьте свой вопрос пользователю в главном потоке, а затем сохраните ответ где-нибудь, где ваш фоновый поток может получить к нему доступ.Кроме того, вы должны иметь возможность блокировать фоновый поток на время работы селектора основного потока, установив для YES значение waitUntilDone:.

...