我对编程相当陌生,我正在阅读开始开发 iOS 应用程序 (Swift) 编程指南。我知道选项有一个问号后缀,这意味着该值可以是 nil 或其他值。Apple 的指南正在引导我们了解如何使用UIImagePickerController
它,它是代表。imagePickerControllerdidFinishPickingMediaWithInfo(_:)
Apple 使用具有字典作为参数的委托方法。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage else {
fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
}
}
Apple 的 UIImagePickerControllerDelegate 文档没有将此参数列为可选参数,UIImagePickerController
我们为本教程创建的实例也不是可选参数,但教程声明如下:
“此代码从信息字典访问原始的、未编辑的图像。它安全地解包字典返回的可选并将其转换为 UIImage 对象。期望解包和转换操作永远不会失败。如果他们这样做了,它代表要么是您的应用程序中需要在设计时修复的错误。”
这是否意味着通过使用guard关键字,它会自动将变量变为可选?