我是iOS开发的新手,我想知道如何从服务器下载文件,并将其保存在我的Application Support文件夹中。我想将它保存为.pdf文件,以便能够在UIWebView中显示它。
在不同网站上经过很长一段时间后,我想我应该使用NSURLConnection(异步)来下载它。或NSData(我已经尝试过,但它没有用)。
所以,有人可以帮助我,通过向我展示一个示例代码?
非常感谢你:)
答案 0 :(得分:2)
请查看此S.O. question以获取有关如何操作的示例。
此示例使用ASIHTTPRequest,它是NSURLRequest
和NSURLConnection
的替代方案。我强烈建议你使用这个框架,这将使你的生活更轻松。
如果您真的愿意使用NSURLRequest
和NSURLConnection
,请参阅this other topic。
答案 1 :(得分:0)
[self.productListArray enumerateObjectsUsingBlock:^(NSDictionary *productDictionary, NSUInteger idx, BOOL *stop)
{
NSFileManager *fileManger=[NSFileManager defaultManager];
if(![fileManger fileExistsAtPath:pdfString])
{
dispatch_async(serialQueue, ^()
{
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:120];
NSURLResponse *response = nil;
NSError *connectionError = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&connectionError];
if(connectionError)
{
NSLog(@"Pdf Connection Error==>%@",connectionError.userInfo);
[AMSharedClass showAlertMessge:@"Request timeout"];
}
else if ([response.MIMEType isEqualToString:@"application/pdf"])
{
NSLog(@"pdfFilePathURLString==>%@",pdfString);
[data writeToFile:pdfString atomically:YES];
}
else
{
[AMSharedClass showAlertMessge:@"Pdf not found."];
if (idx+1 == [self.productListArray count])
{
[self.btnSetting setEnabled:NO];
}
}
if (idx+1 == [self.productListArray count])
{
[[[AMSharedClass object]sharedHUD]hideOnWindow];
self.pdfURLString = [self joinPDF:self.productFilePathUrlArray WithDetails:self.pdfInfoArray];
[self initialConfiguration];
NSLog(@"%@",self.productFilePathUrlArray);
}
});
// Long running task
}
else
{
if (idx+1 == [self.productListArray count])
{
self.pdfURLString = [self joinPDF:self.productFilePathUrlArray WithDetails:self.pdfInfoArray];
[self initialConfiguration];
NSLog(@"%@",self.productFilePathUrlArray);
[[[AMSharedClass object]sharedHUD]hideOnWindow];
}
}
}];