在Swift 2.2

时间:2016-03-23 10:13:25

标签: ios swift

我在类中的一个名为toolBarSetup的函数中设置了一个UIToolBar。

public class Utility {      

  func toolBarSetup(inout toolBar: UIToolbar, inout  toolBarLbl: UILabel, view: UIView) -> (UIToolbar, UILabel){ 

      toolBar = UIToolbar(frame: CGRectMake(0, view.frame.height/7, view.frame.width, 44.0)) 

      let toolBar_btn = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "picker_cancel")

     //Codes to setup toolbar label

     toolBar.setItems([toolBar_btn, flexSpace, text_info, flexSpace], animated: true)

      return (toolBar, lbl_toolBar_cancel)
 }

}

从另一个班级我正在调用这个函数

class Class1: UIViewController {

  var toolBar = UIToolbar()
  var lbl_toolBar = UILabel()

  override func viewDidLoad() {
    super.viewDidLoad()

    let toolBarSetup = Utility().toolBarSetup(&toolBar, lbl_toolBar: &lbl_toolBar, view: view)

    toolBar = toolBarSetup.0
    lbl_toolBar = toolBarSetup.1
  }

  func picker_cancel(){

  }
}

早些时候函数picker_cancel()工作正常,但昨天我更新了我的Xcode,之后我收到了这个警告

没有使用Objective-C选择器声明的方法'picker_cancel()'

在类'Utility'的下面一行。

let toolBar_btn = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "picker_cancel")

我尝试使用选择器解决但没有任何效果。请帮忙。

1 个答案:

答案 0 :(得分:11)

在Xcode 7.3中,您需要使用#selector()。通常Xcode可以为您做这个改变。

我认为有效:

#selector(Class1.picker_cancel)