我已经制作了自己的 pdf 下载课程,但这是您需要的部分。在类的 .h 中。宣布:
NSMutableData *_data;
NSString *pdfPath;
还对连接的代表进行子类化
<NSURLConnectionDataDelegate, NSURLConnectionDelegate>
然后在实现文件中,在- viewDidLoad
:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
pdfPath = [documentsDirectory stringByAppendingPathComponent:@"pdfName.pdf"];
connection:didReceiveData:
方法:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
if(!_data) _data = [[NSMutableData data]init];
[_data appendData:data];
progressView.progress = ((float) [_data length] / (float) downloadSize);
}
connectionDidFinishLoading:
方法:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
unsigned char byteBuffer[[_data length]];
[_data getBytes:byteBuffer];
[_data writeToFile:pdfPath atomically:YES];
}
因此,当它接收到数据时,它会构建 _data,然后在完成时将其写入路径。确保连接委托设置为self
.
之后,您可以像以前一样打开 PDF 的路径。