Вы, вероятно, не хотите использовать 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];
}