简体   繁体   English

如何将CFReadStreamRef转换为NSInputStream?

[英]How to convert CFReadStreamRef to NSInputStream?

    - (void)connection:(NSString*)serviceName forIpAddress:(NSString *)ipAddress
       forPort:(NSString *)portNo
  {
if(inputStream && outputStream)
    //[self close];

    NSString *urlString = [NSString stringWithFormat:@"http://%@",ipAddress];

NSURL *website = [NSURL URLWithString:urlString];

if (!website) {
    NSLog(@"%@ is not a valid URL", website);
}
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)[website host], [portNo
                                                                       intValue], &readStream, &writeStream);
CFReadStreamSetProperty(readStream, kCFStreamPropertyShouldCloseNativeSocket,
                        kCFBooleanTrue);
CFWriteStreamSetProperty(writeStream, kCFStreamPropertyShouldCloseNativeSocket,
                         kCFBooleanTrue);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[self open];

} }

Getting ARC errors at NNString, NSInputStream,NSoutputStream. 在NNString,NSInputStream,NSoutputStream上获取ARC错误。 Error says..Cast of c pointer type CFreadStreamRef to c pointer type NSinput stream needs bridging cast. 错误说..将c指针类型CFreadStreamRef转换为c指针类型NSinput流需要桥接强制转换。

NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream;
NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream;

See Setting Up Socket Streams programming guide. 请参阅设置套接字流编程指南。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM