NSInputStream使用本地文件,而不是从服务器下拉文件

时间:2012-07-21 05:02:40

标签: iphone ios yaml nsinputstream

嘿伙计们,所以我从网络服务器上下载了一个yaml文件。我的NSInputStream适用于本地yaml文件(使用file://filename.yaml url scheme)

以下是相关的代码段:

NSInputStream * stream = [[NSInputStream alloc] initWithURL:yamlURL];

其中yaml url类似于http:// myip:8000 / assets / test.yaml在浏览器中打开只会导致文件下载......

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我对此已经太晚了,但我刚刚解决了这个确切的问题,所以这里有:

根据文档,

The NSStream class does not support connecting to a remote host on iOS.

听起来很愚蠢,initWithURL只适用于本地文件。但这很容易解决......

可以在此处找到苹果的完整说明和代码示例: https://developer.apple.com/library/mac/documentation/cocoa/Conceptual/Streams/Articles/NetworkStreams.html#//apple_ref/doc/uid/20002277-BCIDFCDI

答案 1 :(得分:0)

在initWithURL之后,您正在使用*流做什么吗?

如果要从本地文件中获取InputStream中的内容,则需要创建一个NSOutputStream来获取InputStream并将其重定向到Safari。所以我不认为只是initWithURL:使用url调用会告诉你很多,但是在safari中打开http:// url的调用将尝试确定内容类型并尝试输出文件。但我不认为safari能够显示内容,如果它是一个mulit-part mime yaml文件。