2009-11-30 73 views
1

我已经在tableview中做了一个图像+相应数据的列表。 需要较长的时间,同时加载 我想使多线程两种方法如何使用NSThread异步调用

数据的

1>解析图像的

2>解析

我想执行解析数据的在此之后,我可以选择列出的任何行,即使图像未被加载(/解析),因为图像在解析数据后被解析,并且需要很长时间。

我应该从哪里调用这两种方法。 以及如何解析数据... 如何做多线程两种方法

提前

回答

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]; 

}