NSInputStream *和之间的区别CFReadStreamRef似乎是第一个是客观的 C 对象,而第二个是本机结构。然而,它们是免费桥接的。
我想实现一个基于网络流的程序。
[NSStream getStreamsToHost:port:inputStream:outputStream:]产生
NSInputStream *和NSOutputStream *. 但是,在 iOS 上,此方法不可用。因此,必须在 iOS 上使用CFStreamCreatePairWithSocketToHost 。
CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocketToHost( kCFAllocatorDefault, host, port, &readStream, &writeStream); NSInputStream *read = (__bridge NSInputStream *)readStream; NSOutputStream *write = (__bridge NSOutputStream *)writeStream;设置流属性时,使用时并非所有属性都可用
NSInputStream *。特别是kCFStreamPropertyShouldCloseNativeSocket确保在关闭相应的流时也关闭套接字会很有趣。我是否必须将 转换
NSInputStream *为 aCFReadStreamRef才能设置此属性,然后还原转换以设置此类属性?...
NSInputStream *似乎有多个缺点。它的唯一优势真的是我可以提供它自己的子类,而在这种情况下我不能这样做CFReadStreamRef吗?什么时候应该使用哪种方法?