let imagePath = String(describing: UserDefaults.standard.url(forKey: "drawingImage")) print(imagePath) if let image = UIImage(contentsOfFile: imagePath) { let image = UIImageView(image: image) canvasView.image = image.image canvasView.contentMode = UIView.ContentMode.scaleAspectFill }else{ }
このコードを実行するとprint(imagePath)の中身がOptional(file:///var/mobile/Containers/Data/Application/D96685FE-7C71-4243-92EE-EFF0C312311E/Documents/drawing.png)
となります。
Optionalをunwrapするために以下のようにソースを変更しました。
let path = String(describing: UserDefaults.standard.url(forKey: "drawingImage")) guard let imagePath = path else { return } print(imagePath) if let image = UIImage(contentsOfFile: imagePath) { let image = UIImageView(image: image) canvasView.image = image.image canvasView.contentMode = UIView.ContentMode.scaleAspectFill }else{ }
するとInitializer for conditional binding must have Optional type, not 'String'
guard文のところで、エラーになります。どうしてそのようになるのかわかりません。pathという変数の型はStringでした。
ご教授をお願いします。
回答2件
あなたの回答
tips
プレビュー