我有一个视频应用程序,几年前我用Swift 1搭建的,现在我一直试图迁移到Swift 2.2。除了与观察器有关的奇怪崩溃之外,所有内容(终于)都正常工作。
func removeObservers()
{
print("REMOVING OBSERVERS")
if ( !self.is_image && self.player != nil ) {
if (self.player?.observationInfo != nil) {
self.player?.removeObserver(self, forKeyPath: "currentItem.status")
self.player?.removeObserver(self, forKeyPath: "readyForDisplay")
}
}
NSNotificationCenter.defaultCenter().removeObserver(self)
}
之前使用SwiftTryCatch时,这段代码可以正常工作,但是现在加上了一些代码后出现了崩溃错误:“'Cannot remove an observer for the key path "readyForDisplay" from because it is not registered as an observer.'”,如果我将这部分代码注释掉,就会出现“已对一个已释放的对象进行观察者注册”的错误。
如果我添加do { } catch {},则会出现“this does not throw”的错误并导致相同的崩溃。请问如何将其放入try-catch格式中?