Thanks everyone, i found it.
The thing is, my question already had all the clues i would have needed, because, like i wrote, NSStream`s -initWithURL: will
Create and return an initialized NSInputStream object that reads data from
the file at a given URL.
What I didn't see is that this is only true for local sources. If you want a remote host, (i had a wireless network connection) you need to use something else, because, and i quote the docs again here:
The NSStream class does not support connecting to a remote host on iOS.
Well, for what its worth, you need to create a CFReadStreamRef
and a CFWriteStreamRef
, and then use the magic function CFStreamCreatePairWithSocketToHost
to connect them to your host. After that, you can cast them to NSInputStream
and NSOutputStream
respectively, and they will work as intended. Heres a code example from the docs:
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)[website host], 80, &readStream, &writeStream);
NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream;
NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
Hope this helps someone at some point.
@leparlon:
Im upvoting your answer, since you were definitly on the right track, suggesting the use of initWithData.