我在tableview中制作了一个图像列表+各自的数据。 加载时需要很长时间 我想制作多线程两种方法
1> 解析数据
2 - ; 解析图像
我想首先执行解析数据,之后我可以选择列出的任何行,即使图像未被加载(/解析),因为图像在解析数据后被解析并且需要很长一段时间。
我应该从哪里调用这两种方法。 以及如何在解析数据后启用行选择... 如何做多线程的方法
等待你的好回应
提前感谢
答案 0 :(得分:1)
你可能不想使用NSThreads - 至少不是直接使用。 你所做的是NSOperation的子类。
有几种方法可以做到你的想法。如果您从一开始就知道表中的总行数,那么事情就更简单了:
创建一个名为MyParseDataOperation的NSOperation的子类。然后为表中的每一行创建一个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];
}