Мы можем изменить операцию фонового потока на основной поток?

Как я могу выполнить анализ JSON в фоновом потоке в viewDidLoad и переместить его в основной поток при нажатии на кнопку. Сейчас я попробовал

[self performSelectorInBackground:@selector(parseData) withObject:nil];


-(void)parseData    {

    MSJsonParser *parser = [[MSJsonParser alloc]initWithParserType:kCountriesParsing];
    parser._parserSource = self;
    [parser requestParsingWithUrl:COUNTRIES_URL ];

}

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

2 ответа

См. NSObject (NSThreadPerformAdditions) в NSThread

 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array;
 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;

Часть в этом методе, которую вы хотите запустить в основном потоке, просто вставьте его в этот блок GCD, и он запустит его в основном потоке:

dispatch_sync(dispatch_get_main_queue(), ^{
    //put stuff here
});
Другие вопросы по тегам