黄色的警告提示您原因 - do块中没有抛出任何内容; 没有try语句,因为您调用的函数都没有throw。如果没有任何throw,则永远无法catch。在Swift中,do / try / catch仅用于捕获Swift错误。它不用于捕获可能发生的通用运行时异常。removeObserver是一种基础功能,早在Swift之前就存在了。如果未注册观察者,它将引发严重的运行时异常。它不会抛出Swift Error。
NSObject
中并使用方法替换。如果可能的话,我会避免使用它。在注销之前,您需要知道是否已经注册了观察者。您不能只是尝试并希望它能正常工作。 - Paulw11