作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试设置一个 NSInputStream
和 NSOutputStream
用于 NSNetService
上的 Bonjour 连接. getInputStream 方法需要类型为 UnsafeMutablePointer<NSInputStream?>
的参数:
public func getInputStream(inputStream: UnsafeMutablePointer<NSInputStream?>, outputStream: UnsafeMutablePointer<NSOutputStream?>) -> Bool
但是当我这样做时,inputStream 和 outputStream 保持为 nil,succes 为 false:
let inputStream:UnsafeMutablePointer<NSInputStream?> = nil
let outputStream:UnsafeMutablePointer<NSOutputStream?> = nil
var succes = service.getInputStream(inputStream, outputStream: outputStream)
另一个问题是我不能将它作为“NSInputStream”来处理,因为它的类型是“UnsafeMutablePointer”。当我尝试这样做时,出现以下错误:
Error:(52, 13) value of type 'UnsafeMutablePointer<NSInputStream?>' (aka 'UnsafeMutablePointer<Optional<NSInputStream>>') has no member 'delegate'
在 swift 中处理这些可变指针类型的正确方法是什么?任何帮助将不胜感激,谢谢!
最佳答案
你的指针是nil
因为你没有为它们分配内存。但更简单的解决方案是将 NSIn/OutputStream?
变量作为带有 &
的 inout 参数:
var inputStream : NSInputStream?
var outputStream : NSOutputStream?
let success = service.getInputStream(&inputStream, outputStream: &outputStream)
关于swift - 如何在 Swift 的 NSNetService 上使用 getInputStream()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33830131/
我是一名优秀的程序员,十分优秀!