Swift 4 NSObject类,StreamDelegate未被调用

时间:2018-01-23 07:36:27

标签: swift3 swift4 nsobject

嘿伙计,所以我在设置委托时遇到了NSObject类文件的问题。

class NetWorkController: NSObject, StreamDelegate{)

当我尝试设置

inputStream!.delegate =  self

但是,如果我在我的UIViewcontroller类中执行相同的操作

class ConnectPlayerViewController: UIViewController, StreamDelegate {}

我不明白为什么它在这里工作但不在我的NSObject课程中,感谢您提前获得帮助。

继承了StreamDelegate处理函数:

func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
    DispatchQueue.main.async(execute: {
        if aStream == self.inputStream {
            self.inputStreamHandle(eventCode)
        }
        else if aStream == self.outputStream {
            self.outputStreamHandle(eventCode)
        }

    })
}

1 个答案:

答案 0 :(得分:0)

我想你有

NetWorkController().connect()

在VC的某些方法中。由于Automatic Reference Counting,这不起作用。方法返回后,您的对象将“消失”。

您需要将其声明为属性:

// outside of any method, at class level
let controller = NetWorkController()

// in some method
controller.connect()

现在应该调用委托方法。