2015-11-20 2 views
1

Я пытаюсь установить NSInputStream и NSOutputStream для подключения Bonjour на NSNetService. Метод getInputStream требует аргументы типа UnsafeMutablePointer<NSInputStream?>:Как использовать getInputStream() для NSNetService в Swift?

public func getInputStream(inputStream: UnsafeMutablePointer<NSInputStream?>, outputStream: UnsafeMutablePointer<NSOutputStream?>) -> Bool 

Но когда я делаю это InputStream и OutputStream пребывания ноль и Сукчес ложна:

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'

Что такое правильный способ справиться с этим изменяемыми типами указателей в стриже? Любая помощь будет принята с благодарностью, спасибо!

ответ

5

Ваши указатели: nil, потому что вы не выделили для них память. Но проще решение передать NSIn/OutputStream? переменные Inout-спор с &:

var inputStream : NSInputStream? 
var outputStream : NSOutputStream? 

let success = service.getInputStream(&inputStream, outputStream: &outputStream) 
Смежные вопросы