я следующий быстрый 3 код в проекте Xcode 8:неожиданно нашли ноль в то время как разворачивание необязательное значение НЕСМОТРЯ проверки
if pictureImg.image == nil {
print("image nil")
}
if pictureImg.image != nil {
print("image not nil")
}
if pictureImg.image != nil {
imageData = UIImageJPEGRepresentation(pictureImg.image!, 0.5)!
}
Во время выполнения, я в конечном итоге со своеобразным результатом в консоли:
image not nil
fatal error: unexpectedly found nil while unwrapping an Optional value
И так кажется, что мой pictureImg.image фактически ноль несмотря на моих предыдущих идентичны если заявление о том, в противном случае. Проверяет, является ли UIImageJPEGRepresentation ноль также приводит к той же ошибки:
if UIImageJPEGRepresentation(pictureImg.img!, 0.5) == nil { *code* }
подтверждения проблемы, безусловно, делать с pictureImg.image, или так кажется.
Есть ли немедленная/очевидная проблема с этим кодом или будет предоставлена дополнительная информация о проекте?
Вы проверяете, если 'UIImageJPEGRepresentation' возвращает' nil'? Вы принудительно разворачиваете возвращаемое значение. Также вы должны использовать операторы 'if let' вместо проверки на' nil'. – JAL
Никогда, никогда не используйте! Чтобы развернуть дополнительный грех Свифт. Есть так много хороших способов сделать это. Это разбить его с помощью больших вещей. – Fogmeister
@Fogmeister, "необязательный грех Swift"!?! Теперь это смешная опечатка! –