我正在尝试设置一个 NSInputStream,但是当我进入代码时,我的输入流显示为 nil。该网址来自 Dropbox 帐户。
在我通过 Dropbox 选择器获得 url 后通过 NSData 获取文件会使我的 iPhone 4 崩溃(尽管当它通过 XCode 运行时不会)。文件太大了,所以我想试试 NSInputStream。
我从 I cannot initialize a NSInputStream 看到该网址应该是本地的。知道如何从 Dropbox 流式传输文件吗?
谢谢。
- (void)setUpStreamForFile {
// iStream is NSInputStream instance variable already declared
iStream = [NSInputStream inputStreamWithURL:url];
[iStream setDelegate:self];
[iStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
[iStream open];
}
请不要犹豫,使用 AFNetworking,它是一个很好的框架来操作您的连接和下载内容。这是从 URL 下载文件的示例:
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString"http://example.com/download.zip"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
NSLog(@"File downloaded to: %@", filePath);
}];
[downloadTask resume];
更多信息可以查看官方信息HERE
关于ios - NSInputStream 与 url 在 iOS 中出现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037504/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |