#わからないこと
tableViewの1行をスワイプ削除するところでエラーがになる。
自分では、どうしても解決できないのでご教授お願いしたい。
#考察
1,エラーの部分をコメントアウトするとエラーが消えてビルドできるが、スワイプで削除するとアプリが落ちる
2,誤字等ではなく、何かしら辻褄が合わないことが発生しているらしいが原因がわからない。
3,久しぶりにXcodeを開いたらエラーがこの発生した、以前は起きてなかったような気が・・・
#エラーの内容
Reference to member 'deleteRows' cannot be resolved without a contextual type
#コード全文
swift
1import UIKit 2 3class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { 4 let tableView = UITableView() 5 var ovalTuple:[(arrayName:String,No:String)] = [] 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 11 tableView.backgroundColor = .white 12 tableView.frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height:self.view.bounds.height )//ナビゲーションバーの高さnavBarHeightに合わせるnavBarHeight 13 tableView.register(UITableViewCell.self, forCellReuseIdentifier: "data") //register登録 14 tableView.dataSource = self 15 tableView.delegate = self 16 17 //ovalTupleに値を追加 18 let aaa = (arrayName:"まる",No:"maru") 19 ovalTuple.append(aaa) 20 ovalTuple.append(aaa) 21 ovalTuple.append(aaa) 22 self.view.addSubview(tableView) 23 } 24} 25 26 27extension ViewController { 28 //MARK:- テーブル関数 29 // セルの行数を指定 30 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 31 return ovalTuple.count 32 } 33 // sectionの数を決める 34 func numberOfSections(in tableView: UITableView) -> Int { 35 return 1 36 } 37 // Cellの高さを決める 38 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 39 return 30 40 } 41 42 //セルの値を設定、一つのsectionの中に入れるCellの内容を決める。 43 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 44 let cell = tableView.dequeueReusableCell(withIdentifier: "data", for: indexPath) as UITableViewCell 45 cell.textLabel?.text = String(ovalTuple[indexPath.row].arrayName) 46 cell.textLabel?.textColor = .black 47 cell.backgroundColor = .white 48 //タップすると指定色にする 49 let selectionView = UIView() 50 selectionView.backgroundColor = .lightGray 51 cell.selectedBackgroundView = selectionView 52 return cell 53 } 54 55 // セルを選択したときのアクション 56 func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) { 57 ///キーボードを閉じる 58 self.view.endEditing(true) 59 } 60 61 //セルの編集許可 62 func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool 63 { 64 return true 65 } 66 67 //スワイプしたセルを削除 68 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { 69 if editingStyle == UITableViewCell.EditingStyle.delete { 70 ovalTuple.remove(at: indexPath.row)//配列からrow番号の文字を消す 71 tableView.deleteRows(at: [indexPath as IndexPath], with: UITableView.RowAnimation.automatic)//ここでエラー 72 } 73 74 func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 75 // ヘッダーViewの高さを返す 76 return 50 77 } 78 79 func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 80 return "test" 81 } 82 83 func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 84 let headerView:UIView = UIView() 85 headerView.backgroundColor = UIColor.white 86 return headerView 87 } 88 } 89} 90
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/31 00:32