前提・実現したいこと
ここに質問の内容を詳しく書いてください。
シュミレーターでTableViewを表示する時に
return name[section].count
のところにエラーが出ます
解決方法を教えてほしいです。
発生している問題・エラーメッセージ
Fatal error: Index out of range
該当のソースコード
swift
1 2import UIKit 3 4class YearTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 5 6 private let YearTableViewCell = "YearTableViewCell" 7 private let Era = [ 8 "奈良", "平安", "鎌倉", "室町", "安土桃山", "江戸", "明治" 9 ] 10 private let name = [ 11 ["784年長岡京遷都", "794年平安京遷都"], ["802年\n坂上田村麻呂を征夷大将軍に任命", "aaa"], 12 ["aaa"], 13 ["aaa"] 14 15 ] 16 17 @IBOutlet weak var YearTableView: UITableView! 18 19 override func viewDidLoad() { 20 super.viewDidLoad() 21 22 YearTableView.dataSource = self 23 YearTableView.delegate = self 24 YearTableView.register(UITableViewCell.self, forCellReuseIdentifier: "YearTableViewCell") 25 } 26 27 28 func numberOfSections(in tableView: UITableView) -> Int { 29 return Era.count 30 } 31 32 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 33 return name[section].count 34 } 35 36 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 37 let cell = YearTableView.dequeueReusableCell(withIdentifier: YearTableViewCell, for: indexPath) 38 cell.textLabel?.text = name[indexPath.section][indexPath.row] 39 cell.textLabel?.numberOfLines = 2 40 41 return cell 42 } 43 44 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 45 return 60 46 } 47 48 //header 49 func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 50 let label = UILabel() 51 label.text = Era[section] 52 label.textAlignment = .center 53 label.backgroundColor = .gray 54 55 return label 56 } 57 58 func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 59 return 50 60 } 61 62 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 63 print("section: (indexPath.section), row: (indexPath.row)") 64 tableView.deselectRow(at: indexPath, animated: true) 65 66 67 } 68 69} 70
試したこと
Webで調べたものを試しましたが直りませんでした
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/24 13:21