前提・実現したいこと
iOSアプリ開発初心者です。
プロフィールを表示するような簡単なアプリから初めているのですが、
テキストは永続化できましたが、選択した画像の永続化の方法が分かりません。
初期値を入れればいいのかなと思いましたがやり方が分かりません。
よろしくお願いします。どなたか教えていただけると幸いです。
発生している問題・エラーメッセージ
Fatal error: Unexpectedly found nil while unwrapping an Optional value
エラーが出たのは以下の2行目let data:NSData =・・の部分です
swift
1 func readimage() -> UIImage { 2 let data:NSData = userdefault.object(forKey: "画像キー") as! NSData 3 let savedata = UIImage(data: data as Data) 4 return savedata! 5 }
該当のソースコード
swift
1import UIKit 2 3class ViewController: UIViewController ,UINavigationControllerDelegate,UIImagePickerControllerDelegate{ 4 5 @IBOutlet weak var imageview: UIImageView! 6 7 @IBAction func selectphoto(_ sender: Any) { 8 9 let controller = UIImagePickerController() 10 controller.sourceType = .photoLibrary 11 controller.delegate = self 12 present(controller, animated: true, completion: nil) 13 14 } 15 16 let userdefault = UserDefaults.standard 17 18 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 19 imageview.image = info[UIImagePickerControllerOriginalImage] as? UIImage 20 saveimage(画像: imageview.image!) 21 dismiss(animated: true, completion: nil) 22 } 23 24 func saveimage(画像:UIImage){ 25 userdefault.set(画像, forKey: "画像キー") 26 } 27 28 func readimage() -> UIImage { 29 let data:NSData = userdefault.object(forKey: "画像キー") as! NSData 30 let savedata = UIImage(data: data as Data) 31 return savedata! 32 } 33 34 override func viewDidLoad() { 35 super.viewDidLoad() 36 // Do any additional setup after loading the view, typically from a nib. 37 38 imageview.image = readimage() 39 } 40 41 override func didReceiveMemoryWarning() { 42 super.didReceiveMemoryWarning() 43 // Dispose of any resources that can be recreated. 44 } 45 46 47}
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー