在 Table 视图中删除行

Delete Row in a Table View

我最近修复了这段代码中的一些错误,但出现了一个新错误,我和我的老师都无法修复它。它说 "expected declaration" 我该如何解决这个问题?

import UIKit

    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

        var StoredValues = Values()
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }

        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            return UITableViewCell()
        }

        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 4
        }
        func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            self.performSegue(withIdentifier: "meunSegue", sender: self)

            func prepare(for segue: UIStoryboardSegue, sender: Any?) {
                _ = segue.destination as! SecondViewController
            }
            class SecondViewController: UIViewController {

                var recievedData = ""
                override func viewDidLoad() {
                    super.viewDidLoad()
                    print(recievedData)
                }
            }
        }
        - (void)tableView:(UITableView *)tableView committEditStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath: (NSIndexPath *)indexPath {if (editingStyle == UITableViewCellEditingStyleDelete) {
        [maTheData removeObjectAtIndex: [indexPath row]];
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];


        }
    }

您正试图在同一个文件中混合使用 Object-C 和 Swift。下面是您的代码的 Swift 3 版本。

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete {
        maTheData.remove(at: indexPath.row)
        tableView.deleteRows(at: [indexPath], with: .fade)
    }
}