在我的扩展代码中调用数组时使用未解析的标识符错误

Use of unresolved identifier error when calling array in my extension code

我正在尝试创建一个相当简单的下拉菜单,为此我创建了一个包含一些要显示的字符串的数组。我不确定我哪里出错了,但是当我编写扩展代码以将数组添加到要在下拉列表中显示的 UITableView 时,数组 "rList" 没有得到识别。在调用 "rList" 的扩展代码中出现未解决的标识符错误。另请注意,我在 Xcode 9 beta 上 运行 不确定是否有我可能错过的某些语法更改。感谢我能得到的任何帮助!

干杯

(这是代码)

import UIKit


    class MainViewController: UIViewController {



        @IBOutlet weak var tableView: UITableView!

        @IBOutlet weak var dropDownButton: UIButton!

        var rList = ["A", "B", "C", "D", "E", "F"]

        override func viewDidLoad() {
            super.viewDidLoad()
            self.tableView.isHidden = true
            // Do any additional setup after loading the view.

        }


        @IBAction func dropDownButtonPressed(_ sender: Any) {
            if tableView.isHidden {
            animate(toggle: true)
            } else {
                animate(toggle: false)
            }
        }


        func  animate(toggle:Bool) {
            if toggle {
                UIView.animate(withDuration: 0.3) {
                    self.tableView.isHidden = false
                }
            } else {
                UIView.animate(withDuration: 0.3) {

                    self.tableView.isHidden = true
                }
              }
            }
          }

现在是我的扩展代码

extension ViewController: UITableViewDelegate, UITableViewDataSource {

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return rList.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    cell.textLabel?.text = rList[indexPath.row]
    return cell
    }
}

您正在扩展 ViewController(这是应用程序模板提供的默认空视图控制器)而不是 MainViewControllerViewController 在其模板形式中没有 rList 作为成员,因此出现错误。

将您的扩展名更改为:

extension MainViewController: UITableViewDelegate, UITableViewDataSource {
.
.
.
}