编译错误使用未解析的标识符' addButtonPressed'

时间:2017-11-19 23:50:34

标签: swift

当我去编译时,我得到:

  

使用未解析的标识符' 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)
    }
}

1 个答案:

答案 0 :(得分:1)

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

更改一个以匹配另一个。

您可以将选择器更改为:

#selector(addButtonPressed)

#selector(addButtonPressed(sender:))

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

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

func addButtonPressed(_ sender: UIBarButtonItem) {
}

无论您做出哪些更改,您还需要将@objc添加到该功能。

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