###前提・実現したいこと
カメラロールから選択した写真を
テーブルビューにアップロードして一覧を作りたい。
###発生している問題・エラーメッセージ
シュミレーター、実機でビルドした後に表示されるデバッグナビゲーター上で、 「0x108fb46e7 <+55>: xorl %edi, %edi」の右横に「Thread 1: signal SIGABRT」とあります。 これが理由で写真を選択した後のアップロードができないのではと考えていますが、 どこをどう直したらいいかがわかりません。
###該当のソースコード
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { @IBOutlet var tableView: UITableView! var resultArray = [UIImage]() override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) if UserDefaults.standard.object(forKey: "douga") != nil{ resultArray = UserDefaults.standard.object(forKey: "douga") as! [UIImage] } tableView.reloadData() } func numberOfSections(in tableView: UITableView) -> Int { return 1 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return resultArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for:indexPath) cell.imageView?.image = resultArray[indexPath.row] return cell } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
import UIKit class AddViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBOutlet var imageView: UIImageView! //イメージが入る配列を準備する var array = [UIImage]() override func viewDidLoad() { super.viewDidLoad() imageView.image = UIImage(named: "default.png") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } //カメラロールから写真を選択する @IBAction func sentaku(_ sender: Any) { //カメラロールの利用の可能 if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { //写真を選ぶビュー let pickerView = UIImagePickerController() //写真の選択元をカメラロールに pickerView.sourceType = .photoLibrary pickerView.delegate = self //ビューに表示 self.present(pickerView, animated: true) } } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { //選択した写真を取得 let image = info[UIImagePickerControllerOriginalImage] as! UIImage //ビューに表示する self.imageView.image = image //写真を選ぶビューを閉じる self.dismiss(animated: true) } @IBAction func add(_ sender: Any) { if UserDefaults.standard.object(forKey: "douga") != nil{ array = UserDefaults.standard.object(forKey: "douga") as! [UIImage] } //選択されたイメージを配列に入れる array.append(imageView.image!) //配列を保存する UserDefaults.standard.set(array, forKey: "douga") self.navigationController?.popViewController(animated: true) } }
###試したこと
シュミレーター、実機での動作確認
BreakPointの設定(ただし、設定後の処理が理解できおらず・・・)
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode Version9.2
落ちているのならコンソールに何かしらログが表示されているはずですが。
回答1件
あなたの回答
tips
プレビュー