Avatar
UIImage の↓の二つのプロパティは、ドキュメントを素直に読めば片方が nil のときはもう片方は nil でないということになると思うんですが、それは保証されているんでしょうか? var cgImage: CGImage? { get }
If the UIImage object was initialized using a CIImage object, the value of the property is NULL.
https://developer.apple.com/documentation/uikit/uiimage/1624147-cgimage var ciImage: CIImage? { get }
If the UIImage object was initialized using a CGImage, the value of the property is nil.
https://developer.apple.com/documentation/uikit/uiimage/1624129-ciimage
4:16 PM
たとえば、↓のようなコードは正当な(決して ! に失敗しない)んでしょうか?より良い書き方がありますか? if let cgImage = uiImage.cgImage { // `cgImage` を使う処理 } else { let ciImage = uiImage.ciImage! // forced unwrap // `ciImage` を使う処理 } (edited)