Представьте, что у меня есть метод, который я хочу вызывать в фоновом режиме.
- (void)loadView
{
[super loadView];
//Make a button which will fire the "buttonClicked" method
//Make my own uitableview.
//Fire method: "theBackGroundMethod" in the background.
}
Извините за неточность, но я постараюсь быть максимально ясным. Вот что я хочу сделать. У меня есть представление, но я на нем эту кнопку и пустой UITableView. Затем я хочу, чтобы метод BackGroundMethod запускал фон, пока он работает, я хочу иметь возможность нажать кнопку и запустить метод buttonClicked, который будет передавать данные в UITableView.
Следующее, что я пробовал с отрицательными результатами:
[self performSelectorInBackground:@selector(theBackGroundMethod) withObject:nil];
Это запускает метод BackGround, но не загружает данные, которые я запрашиваю с сервера.
[self performSelectorOnMainThread:@selector(theBackGroundMethod) withObject:nil waitUntilDone:NO];
Это запускает метод BackGround, но по какой-то причине он не позволяет мне нажимать кнопку, ну, это позволяет нажимать кнопку, но каждое действие, которое я делаю, пока метод запускает клики, помещается в очередь за ним, поэтому только когда фоновый метод выполняется x раз, когда я нажимал кнопку, обрабатывается.
Есть ли у кого-нибудь идеи, что может заблокировать использование любой из описанных выше функций PerformSelector и как их решить. Или есть полная (может быть, лучшая) идея ..?
theBackGroundMethod
? - person kubi   schedule 10.10.2011performSelectorInBackground
. Проблема в вашем кодеtheBackGroundMethod
… но его сложно отлаживать, если мы его не видим. - person kubi   schedule 11.10.2011