NSThread停止进程
|
我正在使用基于导航的应用程序。当我转到下一个视图或返回上一个视图时,线程不会停止。有人可以给我一个在视图之间切换时停止线程的解决方案吗?当我切换到下一个或上一个时,应用程序崩溃。我使用这样的线程下载图像
- (void)viewWillAppear:(BOOL)animated {
AppDeleget= [[UIApplication sharedApplication] delegate];
ProcessView *Process=[[ProcessView alloc] init];
[Process SearchProperty:AppDeleget.PropertyURL page:AppDeleget.Page];
[Process release];
for(NSDictionary *status in AppDeleget.statuses)
{
NSMutableString *pic_string = [[NSMutableString alloc] initWithFormat:@\"%@\",[status objectForKey:@\"picture\"]];
if([pic_string isEqualToString:@\"\"])
{
[ListPhotos addObject:@\"NA\"];
}
else
{
NSString *str= [[[status objectForKey:@\"picture\"] valueForKey:@\"url\"] objectAtIndex:0];
[ListPhotos addObject:str];
}
}
[NSThread detachNewThreadSelector:@selector(LoadImage) toTarget:self withObject:nil];
[AppDeleget.MyProgressView stopAnimating];
[AppDeleget.Progress removeFromSuperview];
[super viewWillAppear:animated];
}
-(void)LoadImage
{
for(int x=0;x<[ListPhotos count];x++)
{
NSData *imageData =[ListPhotos objectAtIndex:x];
id path = imageData;
NSURL *url = [NSURL URLWithString:path];
NSLog(@\"%@\",url);
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
[self performSelectorOnMainThread:@selector(downloadDone:) withObject:img waitUntilDone:NO];
}
}
-(void)downloadDone:(UIImage*)img {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:count inSection:0];
if(img == nil)
{
TableCell *cell = (TableCell *)[TableView cellForRowAtIndexPath:indexPath];
cell.myImageView.image=[UIImage imageNamed:@\"No_image.png\"];
++count;
[TableView reloadData];
}
else
{
TableCell *cell = (TableCell *)[TableView cellForRowAtIndexPath:indexPath];
cell.myImageView.image=img;
++count;
[TableView reloadData];
}
}
没有找到相关结果
已邀请:
2 个回复
肺鬼耙扮群
或者你可以用
这将终止线程
仿普
中启动了线程,因此在视图控制器之间切换时将调用该线程。如果只想执行一次线程,请尝试将其放入
。