Сочетание guard
и принудительное развертывание - оксюморон.Одним из распространенных вариантов использования guard
является guard let
, который надежно защищает от nil
и устраняет необходимость принудительного развертывания.
Я бы переделал ваш код в что-то вроде:
guard let imagePath = Bundle.main.path(forResource: imageName, ofType: "png"), let image = UIImage(contentsOfFile: imagePath) else {
print("\(imageName).png file not available")
return
}
// Use image here as needed
Если вам на самом деле не нужно изображение, но вы просто хотите убедиться, что изображение может быть создано, вы можете изменить его на:
guard let imagePath = Bundle.main.path(forResource: imageName, ofType: "png"), UIImage(contentsOfFile: imagePath) != nil else {
print("\(imageName).png file not available")
return
}
Сказав все это, если изображениена самом деле предполагается, что он находится в вашем комплекте приложений, и это просто временная проблема, такая как забывание правильно нацелить файл, затем не использовать guard и идти вперед и принудительно разворачивать.Вы хотите, чтобы приложение рухнуло на ранней стадии разработки, чтобы вы могли решить проблему.
let image = UIImage(contentsOfFile: Bundle.main.path(forResource: imageName, ofType: "png")!)!
И последнее.Вы можете легко получить изображение, используя:
let image = UIImage(named: imageName)!