Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法转换表达式';s型&x27;无效';输入';CFAllocator';_Ios_Xcode_Core Foundation_Swift - Fatal编程技术网

Ios 无法转换表达式';s型&x27;无效';输入';CFAllocator';

Ios 无法转换表达式';s型&x27;无效';输入';CFAllocator';,ios,xcode,core-foundation,swift,Ios,Xcode,Core Foundation,Swift,为什么假设我将其类型更改为“CFAllocator!”。我试图更改输入值,但它总是出现相同的错误。解决了这个问题 var readStream:CFReadStream? var writeStream:CFWriteStream? var request: NSMutableURLRequest = NSMutableURLRequest() var host = request.URL.host var port = request.URL.port.unsignedIntegerValu

为什么假设我将其类型更改为“CFAllocator!”。我试图更改输入值,但它总是出现相同的错误。

解决了这个问题

var readStream:CFReadStream?
var writeStream:CFWriteStream?
var request: NSMutableURLRequest = NSMutableURLRequest()

var host = request.URL.host
var port = request.URL.port.unsignedIntegerValue

CFStreamCreatePairWithSocketToHost(nil, nil, port, readStream, writeStream)
^ "Cannot convert the expression's type Void to type CFAllocator!"
var-host:CFString=NSString(string:request.URL.host)
变量端口:UInt32=UInt32(request.URL.port.unsignedIntegerValue)
var readStream:非托管?
var writeStream:非托管?
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault、主机、端口、读取流和写入流)
inputStream=readStream!。takeUnretainedValue()
outputStream=writeStream!。takeUnretainedValue()
输入流!。代表=自我
outputStream!。代表=自我
输入流!。scheduleInRunLoop(NSRunLoop.currentRunLoop(),格式:NSDefaultRunLoopMode)
outputStream!。scheduleInRunLoop(NSRunLoop.currentRunLoop(),格式:NSDefaultRunLoopMode)
输入流!。开()
outputStream!。开()

出现此错误的原因是,所有值都必须是“CreatePairWithSocket..”函数要求的确切类型。我做了一些研究,也发现这很有帮助。

您未能将屏幕截图附加到帖子上。我没有足够的分数上载图片。请尝试将
kCFAllocatorDefault
作为第一个参数传递。只需尝试它不会改变任何内容尝试将
CFAllocatorGetDefault()
作为第一个参数传递
var host: CFString = NSString(string: request.URL.host)
var port: UInt32 =  UInt32(request.URL.port.unsignedIntegerValue)

var readStream: Unmanaged<CFReadStream>?
var writeStream: Unmanaged<CFWriteStream>?

CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, &readStream, &writeStream)

inputStream = readStream!.takeUnretainedValue()
outputStream = writeStream!.takeUnretainedValue()

inputStream!.delegate = self
outputStream!.delegate = self

inputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
outputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)

inputStream!.open()
outputStream!.open()