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

}
    
已邀请:
您可以使用实例方法“ 1”取消正在执行的线程。
[yourThread cancel];
或者你可以用
exit
[yourThread exit];
这将终止线程     
您已在
viewWillAppear
中启动了线程,因此在视图控制器之间切换时将调用该线程。如果只想执行一次线程,请尝试将其放入
viewDidLoad
。     

要回复问题请先登录注册