Мы можем изменить операцию фонового потока на основной поток?
Как я могу выполнить анализ 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
});