0
Я создал подкласс NSInputStream, но когда он считывает фактические данные, я получаю следующее исключение.Подкласс 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?
подклассов NSInputStream, кажется, (ваше любимое ругательство здесь). См. Например, http://blog.bjhomer.com/2011/04/subclassing-nsinputstream.html (что касается Objective-C, но описывает проблему) или http://www.openradar.me/19809067. –
Спасибо за напоминание о типографии. Я уже читал этот blogpost, но не получил никакой информации о том, как решить эту конкретную проблему. :( –