ios - "Unrecognized selector sent to instance"用于扩展实现 TableView 的下拉刷新

标签 ios swift uitableview uiviewcontroller pull-to-refresh

我正在尝试添加扩展以向 TableView 添加下拉刷新。这是我正在关注的引用答案https://stackoverflow.com/a/33255722/6307359

我的代码抛出错误“无法识别的选择器发送到实例

以下是我的代码。谁能调查一下并让我知道我哪里做错了?

提前发送。

扩展.swift

var refreshControl = UIRefreshControl()

public extension UIViewController
{
    func addPullToRefresh(tableView: UITableView, refreshMethodName: String){

        refreshControl.addTarget(self, action: Selector(refreshMethodName), for: .valueChanged)

        if #available(iOS 10.0, *) {
            tableView.refreshControl = refreshControl
        } else {
            tableView.addSubview(refreshControl)
        }

    }

    func pullToRefreshEnd (){

        refreshControl.endRefreshing()

    }
}

ViewController.swift

override func viewDidLoad() {

    super.viewDidLoad()

    self.addPullToRefresh(tableView: statementsTable, refreshMethodName: "pullToRefresh")

}

// Pull to refresh implementation
func pullToRefresh() {

    // some action here
    self.pullToRefreshEnd()

}

最佳答案

我通过在 ViewController.swift 中的方法实现之前添加 @objc 来解决。无需其他更改。

// Pull to refresh implementation
@objc func pullToRefresh() {

    // some action
    self.pullToRefreshEnd()
}

关于ios - "Unrecognized selector sent to instance"用于扩展实现 TableView 的下拉刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52282286/

相关文章:

ios - 如何创建有线可循的室内导航?

swift - 在 Swift 2.2 中向标签添加文本

ios - 用新数据刷新同一个 View Controller ?

ios - 如何在 Swift 中将 Json 模型数据存储和提取到 Coredata

ios - 如何在 url 字符串中编码 '' +' 字符?

swift - 当我输入一个字符时,SwiftUI 中的 TextField 失去焦点

ios - 如何获取 UITableViews 中 UITextField 的所有字符串值

ios - 可重用单元格和阵列的问题

ios - 如何防止 UITableViewCell 被选中?

ios - 在两台 iPhone 之间同步 SQLite 数据库