2009-06-06 5 views
0

У меня есть два uiviewcontrollers. Я использую NSThread в первом viewcontroller, и его работы прекрасны. Несколько раз поток работал в первом контролере, на этот раз я хочу пойти в Secondviewcontroller. Это действие останавливает мой поток firstviewcontrolller.Ошибка NSThread

Как я могу исправить это. .. Может кто-нибудь мне помочь? Заранее спасибо

ответ

1

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

Если вы хотите запустить код в других потоках и повлиять на его интерфейс, вам необходимо реализовать механизмы для передачи информации в основной поток. Один метод, который пригождается является NSObject-х

performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait; 

Если вы хотите использовать уведомления, вы должны направить их на основной поток также. Легко получить путаные ошибки, если вы не придерживаетесь этого принципа (хотя, возможно, сначала все работает).