как сделать асинхронный вызов с помощью NSThread - PullRequest
1 голос
/ 30 ноября 2009

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

1> разбор данных

2> разбор изображений

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

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

в ожидании вашей большой реакции

Заранее благодарен

1 Ответ

1 голос
/ 30 ноября 2009

Вы, вероятно, не хотите использовать NSThreads - по крайней мере, не напрямую. Что вы делаете, это подкласс NSOperation.

Есть несколько способов сделать то, что ты имеешь в виду. Если вы знаете общее количество строк в вашей таблице с самого начала, тогда все будет проще:

Создайте подкласс NSOperation, называемый MyParseDataOperation. Затем сделайте один MyParseDataOperation для каждой строки в вашей таблице. Когда операция будет завершена, вам необходимо отправить в главный поток сообщение с полученными данными.

Код ниже полон ошибок, неполных. и т.д.

т.е. в вашем классе MyParseDataOperation:

MyParseDataOperation

-(id)initWithStuff:(NSURL*)stuff forTableRow:(int)row;
{
blah blah - 
// here is where I make sure I have all the data I need for main() which is called in the background on some random thread at some future time.
}

-(void)main;
{
// use data like Urls, file names, etc passed in to the initWithStuff method
get stuff
parse stuff

// ok now you have the data

NSMutableDictionary* parsedData = [NSMutableDictionary dictionary];

[parsedData setObject:[NSNumber numberWithInt:row] forKey:@"row"];
[parsedData setObject:stuff i figured out forKey:@parsed];

[tableDataSource performSelectorOnMainThread:@selector(dataParsed) withObject:parsedData];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...