#前提
以下のようなクラスを作り、別の画面のテキストフィールドで入力した「title」「detail」の文字を受け取り、
受け取った値をTableViewのセルに保存し、「title」はCellに表示するように作成をしたいのですが、以下のエラーで躓いてしまいました。
※保存されたTableViewのセルをタップした場合、保存した「title」「detail」が詳細画面で表示される仕組み。
経緯としては元々クラスを作らずに作成を進めていましたが、このままでは途中で表示する要素が増えた時にコードの編集が必要な箇所が多岐にわたると指摘を受けたため、クラスで管理するように変更しようと試行錯誤している状況となります。
解決方法や問題点などのご指示をいただけたらと思います、よろしくお願いいたします。
import UIKit class ToDoInformation { var title: String var detail: String init(_ title: String, _ detail: String) { self.title = "タイトル初期値" self.detail = "詳細初期値" } } class ToDoTableViewController: UITableViewController { let userDefaults = UserDefaults.standard var todos = [ToDoInformation]() @IBAction func rewindTitle(sender: UIStoryboardSegue) { guard let previousTitle = sender.source as? AddController, let todo = previousTitle.taitle else { return } if let selectedIndexPath = self.tableView.indexPathForSelectedRow { self.todos[selectedIndexPath.row] = todo } else { self.todos[selectedIndexPath.row].title = todo self.todos.append(todo) } let previousDetail = sender.source as? AddController let hiddendetail = previousDetail?.detail if let selectedIndexPath = self.tableView.indexPathForSelectedRow { self.details[selectedIndexPath.row] = hiddendetail ?? "" } else { self.details.append(hiddendetail ?? "") } self.tableView.reloadData() } ~
#発生しているエラーメッセージ
>self.todos[selectedIndexPath.row] = todo //この部分で以下のエラー Cannot assign value of type 'String' to type 'ToDoInformation' >self.todos.append(todo) //この部分で以下のエラー Cannot convert value of type 'String' to expected argument type 'ToDoInformation'
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/11 02:02
2019/09/11 02:18