2番目のビューコントローラにデータを送信しようとして問題が発生しています。具体的には、私はウェブサイトを解析し、特定の要素をオブジェクトに入れています。そこから私は別のビューコントローラに応答を送信しようとしています。私はアプリでこれを一度やったことがあるが、今度は何が間違っているのか分からない。データを迅速に送信するViewController経由で問題
VC1:
override func prepare(for segue: UIStoryboardSegue, sender: Any!) {
guard let assignments = sender as AnyObject as? [Assignment],
let sendMe = segue.destination as? ClassTableViewController
else { return }
sendMe.myAssignments = assignments
}
let classResponse = try ClassParser(innerHTML)
self.performSegue(withIdentifier: "ShowClass", sender: classResponse.classAssignments) //segue to ClassTableViewController
ClassTableViewControllerは、詳細情報を表示するには、そのオブジェクトを使用しています。しかし、エラーは、unexpectedly found nil while unwrapping an Optional value.
として戻ってきます。つまり、オブジェクトの内容が正しく送信されていないことを意味します。 ClassTableViewController:オプションのオブジェクトをアンラップ力であり、それはnil
であることを起こるので
class ClassTableViewController: HeaderViewController {
@IBOutlet weak var classTableView: UITableView!
var myAssignments: [Assignment]!
override func viewDidLoad() {
}
}
extension ClassTableViewController: UITableViewDataSource, UITableViewDelegate {
func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myAssignments.count //ERROR HERE. The variable is empty
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ClassViewCell", for: indexPath)// as! NineWeekCellTableViewCell
cell.textLabel?.text = myAssignments[indexPath.row].name
cell.detailTextLabel?.text = myAssignments[indexPath.row].grade
return cell
}
}
これらのコード行ではエラーは発生しません。エラーが発生した場所のコードを投稿してください –
@FangmingNingさて、上記の2番目のコントローラを追加しました – yzet00