【问题标题】:Compiling Error Use of unresolved identifier 'addButtonPressed'编译错误使用未解析的标识符“addButtonPressed”
【发布时间】:2017-11-19 23:50:34
【问题描述】:

当我去编译时,我得到:

使用未解析的标识符“addButtonPressed”

我已经导入了 UIKit,所以我真的不明白为什么会出现这个错误。错误显示在这里:

let addButton = UIBarButtonItem(UIBarButtonSystemItem: .Add, target: self, action: #selector(addButtonPressed(_:)))

这是整个代码。

import UIKit

class MasterViewController: UITableViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let addButton = UIBarButtonItem(UIBarButtonSystemItem: .Add, target: self, action: #selector(addButtonPressed(_:)))

        self.navigationItem.rightBarButtonItem = addButton
    }

    func addButtonPressed(sender: AnyObject) {
        let alertController = UIAlertController(title: "Add Item", message: "", preferredStyle: UIAlertControllerStyle.alert)

        let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: nil)
        alertController.addAction(cancelAction)

        present(alertController, animated: true, completion: nil)
    }
}

【问题讨论】:

    标签: swift


    【解决方案1】:

    您的选择器addButtonPressed(_:) 与您的addButtonPressed(sender:) 的实际方法不匹配。

    改变一个以匹配另一个。

    您可以将选择器更改为:

    #selector(addButtonPressed)
    

    #selector(addButtonPressed(sender:))
    

    请注意,如果您有多个具有不同参数的 addButtonPressed 方法,则不能使用第一个选择器选项,您需要使用包含参数的第二个。

    或者您可以保留选择器原样并将您的方法更改为:

    func addButtonPressed(_ sender: UIBarButtonItem) {
    }
    

    不管你做了什么改变,你还需要在函数中添加@objc

    @objc func addButtonPressed(_ sender: UIBarButtonItem) {
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多