我已经创建了一个NSInputStream子类,但是当它读取实际数据时,我得到了以下异常。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -setDelegate: only defined for abstract class. Define -[EventusCore.FileUploadStream setDelegate:]!'我无法覆盖NSStream抽象类的以下属性:
unowned(unsafe) public var delegate: NSStreamDelegate?下面是我从NSInputStream继承的类
class InputStream : NSInputStream {
private var currentStatus: NSStreamStatus = .Closed
// override var delegate: NSStreamDelegate?
weak var delegate: NSStreamDelegate?
override func open() {
self.currentStatus = .Open
}
override func close() {
self.currentStatus = .Closed
}
override var streamStatus: NSStreamStatus {
return self.currentStatus
}
override var hasBytesAvailable: Bool {
return self.currentStatus == .Open
}
// MARK: NSInputStream and CFReadStream abstract method overrides
override func scheduleInRunLoop(aRunLoop: NSRunLoop, forMode mode: String) {
}
override func removeFromRunLoop(aRunLoop: NSRunLoop, forMode mode: String) {
}
}下面是我得到的错误:

我做错了什么?使用Swift可以做到这一点吗?
发布于 2016-07-19 23:09:16
找到了覆盖委托变量的合适方法
var localdelegate: NSStreamDelegate?
override var delegate: NSStreamDelegate? {
set {
self.localdelegate = newValue
}
get {
return self.localdelegate
}
}https://stackoverflow.com/questions/38459743
复制相似问题