OStack程序员社区-中国程序员成长平台

标题: ios - NSInputStream 与 url 在 iOS 中出现 nil [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 21:25
标题: ios - NSInputStream 与 url 在 iOS 中出现 nil

我正在尝试设置一个 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];
}



Best Answer-推荐答案


请不要犹豫,使用 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