Я довольно новичок в программировании, и я читаю Start Developing iOS Apps (Swift) programming guide. Я понимаю, что у optionals есть суффикс вопросительного знака, который означает, что значение может быть nil или некоторым другим значением. Руководство Apple прогуливает нас, как использовать UIImagePickerController
и его делегата. Apple использует метод делегата imagePickerControllerdidFinishPickingMediaWithInfo(_:)
, который имеет словарь в качестве параметра.Использует ли ключевое слово guard внутри функции автоматически сделать параметр функции опционным в swift?
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's UIImagePickerControllerDelegate documentation не перечисляет этот параметр, как опция и не является UIImagePickerController
экземпляра мы создали для этого урок опциональным однако Tutorial говорится следующее:
«Этот код обращается к оригиналу, неизмененное изображения из словаря info .Это безопасно разворачивает опцию, возвращаемую с помощью словаря , и выводит его как объект UIImage. Ожидается, что операции разворачивания и литья никогда не сбой. Если они это сделают, то представляет собой либо bu g в вашем приложении, которое должно быть исправлено при проектировании времени. "
Означает ли это, что, используя ключевое слово guard, оно автоматически превращает переменную в необязательную?