Iphone 下载线程出错

Iphone 下载线程出错,iphone,ios,objective-c,ipad,asihttprequest,Iphone,Ios,Objective C,Ipad,Asihttprequest,我正在开发一个正在下载一系列zip文件的应用程序 它工作正常,但有时会崩溃,我可以在project navigator中看到以下错误: Thread 5 WebThread: EXC_??? (11)(code=0,subcode=0x0) 有什么想法吗?我正在使用ASIHTTPRequest下载文件。除了使用ASIHTTPRequest,您还可以尝试异步请求。下面的代码提供了有关下载图像的详细信息,只需将其替换为zip url链接即可 这是下载选项的另一种方法。在应用程序中使用更多线程功能将

我正在开发一个正在下载一系列zip文件的应用程序

它工作正常,但有时会崩溃,我可以在project navigator中看到以下错误:

Thread 5 WebThread: EXC_??? (11)(code=0,subcode=0x0)

有什么想法吗?我正在使用
ASIHTTPRequest
下载文件。

除了使用ASIHTTPRequest,您还可以尝试异步请求。下面的代码提供了有关下载图像的详细信息,只需将其替换为zip url链接即可

这是下载选项的另一种方法。在应用程序中使用更多线程功能将导致性能问题

-(IBAction)startdownload
{
for (int i=0; i<[downloadarray count]; i++)   //download array have url links
{
NSURL *URL = [NSURL URLWithString:[downloadarray objectAtIndex:i]];
NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc]initWithURL:URL];
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
if([data length] > 0 && [[NSString stringWithFormat:@"%@",error] isEqualToString:@"(null)"])
{
//make your image here from data.
UIImage *imag = [[UIImage alloc] initWithData:[NSData dataWithData:data]];
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES);
NSString *docDir = [array objectAtIndex:0];
NSString *imgstr=[NSString stringWithFormat:@"%d",i];
NSString *pngfilepath = [NSString stringWithFormat:@"%@sample%@.png",docDir,imgstr];
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(imag)];
[data1 writeToFile:pngfilepath atomically:YES];
}
else if ([data length] == 0 && [[NSString stringWithFormat:@"%@",error] isEqualToString:@"(null)"])
{
NSLog(@"No Data!");
 }
else if (![[NSString stringWithFormat:@"%@",error] isEqualToString:@"(null)"]){
NSLog(@"Error = %@", error);
}
}];

}

 -(IBAction)viewfile
{
NSMutableArray *arr=[[NSMutableArray alloc]init];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pngfilepath = [NSString stringWithFormat:@"%@",documentsDirectory];
NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:pngfilepath error:&error];
  for (int i=0; i<[filePathsArray count]; i++){
NSString *pngfilepath = [NSString stringWithFormat:@"%@%@",documentsDirectory,    [filePathsArray objectAtIndex:i]];
[arr addObject:[UIImage imageWithContentsOfFile:pngfilepath]];
}
myimageview = [[UIImageView alloc] initWithImage:[arr objectAtIndex:0]]; //Here   myimageview is UIImageView

}
-(iAction)开始下载
{
对于(int i=0;i 0&[[NSString stringWithFormat:@“%@”,错误]IseQualtString:@“(null)”)
{
//根据数据在此处创建图像。
UIImage*imag=[[UIImage alloc]initWithData:[NSData dataWithData:data]];
NSArray*array=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,是);
NSString*docDir=[array objectAtIndex:0];
NSString*imgstr=[NSString stringWithFormat:@“%d”,i];
NSString*pngfilepath=[NSString stringWithFormat:@“%@sample%@.png”,docDir,imgstr];
NSData*data1=[NSData dataWithData:UIImagePNGRepresentation(imag)];
[data1 writeToFile:pngfilepath原子性:是];
}
如果([data length]==0&[[NSString stringWithFormat:@“%@”,错误]IsequalString:@“(null)”)
{
NSLog(@“无数据!”);
}
否则如果(![[NSString stringWithFormat:@“%@”,错误]IsequalString:@“(null)”){
NSLog(@“Error=%@”,Error);
}
}];
}
-(iAction)视图文件
{
NSMutableArray*arr=[[NSMutableArray alloc]init];
NSArray*Path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,是);
NSString*documentsDirectory=[paths objectAtIndex:0];
NSString*pngfilepath=[NSString stringWithFormat:@“%@”,documentsDirectory];
NSArray*filePathsArray=[[NSFileManager defaultManager]子路径目录路径:pngfilepath错误:&错误];

对于(int i=0;i您可以跟踪异常以了解更多详细信息吗

将main.m替换为以下代码:

int main(int argc, char *argv[])
{
    @autoreleasepool {
        int retVal = -1;
        @try {
            retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([FRAppDelegate class]));
        }
        @catch (NSException* exception) {
            NSLog(@"Uncaught exception: %@", exception.description);
            NSLog(@"Stack trace: %@", [exception callStackSymbols]);
        }
        return retVal;
    }
}

我也在使用
asihtpRequest
下载,它对我来说很好。我在使用
ASINetworkQueue

你的设备和设备操作系统是什么?asihtp请求在我的模拟器IOS 6.1I中的iPod+ios6组合中给了我未指定的崩溃。我想你应该尝试捕获并重新加载以防失败se运行应用程序并使其崩溃,然后在调试器控制台中键入
bt
以获取堆栈跟踪,然后将其与您的问题一起发布。@vishnu这是因为您的应用程序中存在一些内存问题