2010-05-24 4 views
2

Мое приложение работает нормально на iPhone SDK 3.1. Однако, когда я пытаюсь запустить его в 3.2-симуляторе, я получаю следующую ошибку и сбой:Мое приложение падает на Iphone SDK 3.2

bool _WebTryThreadLock (bool), 0x5148280: попытался получить веб-блокировку из потока, отличного от основного потока или сети нить. Это может быть результатом вызова UIKit из вторичного потока. Сбой теперь ... Полученный сигнал программы: «EXC_BAD_ACCESS».

Когда я его отладки, это приводит меня к этому миру кода:

- (void)LoginViewToCheckView:(id)sender { 
CheckViewController *tempTestController = [[CheckViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
[tempTestController setDelegate:self]; 
[self setCheckViewController: tempTestController]; 
[tempTestController release]; 

[navigationController pushViewController:checkViewController animated:YES];} 

Другое дело, стоит упомянуть, может быть, что я вызываю эту функцию из отдельной нити.

Любые идеи, что может быть неправильным?

ответ

2

Точно так же вы получаете доступ к объектам UIKit из другого основного потока. Вы не можете нажать контроллер вида на фоновом потоке.

Вы можете использовать NSObject's -[performSelectorOnMainThread:withObject:waitUntilDone:] для выполнения этого метода в основном потоке.

И, b.t.w. методы начинаются с строчной буквы в Objective-C.

Смежные вопросы