UIBarButtonItem - '#selector'的参数不能引用本地函数 - Swift 3

时间:2017-04-01 21:08:17

标签: ios swift uibarbuttonitem

我在创建一个可以调用handleSearch功能的导航按钮时遇到问题。我收到了一条消息Argument of '#selector' cannot refer to local function。任何帮助,将不胜感激!

override func viewDidLoad() {
   // various code

   func setupNavBarButtons() {
       let searchImage = UIImage(named:"search_icon")
       let searchBarButtonItem = UIBarButtonItem(image: searchImage, style: .plain, target: self, action: #selector(handleSearch(sender:)))
        navigationItem.rightBarButtonItems = [searchBarButtonItem]

    }

    func handleSearch(sender: UIBarButtonItem) {
        print(123)
    }
}

1 个答案:

答案 0 :(得分:8)

#selector只能引用顶级函数,而不是本地函数(一个在另一个函数内)。

只需将handleSearch移出viewDidLoad即可解决问题。