您從as!
命令中收到該錯誤。這意味着presentingViewController
並不總是一個OptionsPageViewController
,你應該有條件地解開它。任一這樣的:
if let presentingViewController = presentingViewController as? OptionsPageViewController {
userAvatar = presentingViewController.newAvatar
} else {
// do something to handle other controller types here
}
或具有guard
如果它代表的方法中的故障點:
guard let presentingViewController = presentingViewController as? OptionsPageViewController else {
return
}
userAvatar = presentingViewController.newAvatar
// continue with rest of method
或使用條件鏈接,如果userAvatar
是一個可選的和尼爾斯正在其它地方進行處理:
userAvatar = (presentingViewController as? OptionsPageViewController)?.newAvatar
一般而言,你幾乎從不想強制解開任何東西。唯一一次你應該使用它是,如果你絕對100%肯定它永遠不會是零/錯誤的類型/等,即使如此,你應該三思而後行。
如果你是100%肯定,這應該是OptionsPageViewController
,仔細檢查任何代碼的供應值,以確保它被正確初始化(但你還是應該拆開包裝得當不管)。