为了账号安全,请及时绑定邮箱和手机立即绑定

@selector()在SWIFT?

@selector()在SWIFT?

犯罪嫌疑人X 2019-06-06 11:15:54
@selector()在SWIFT?我想创造一个NSTimer在……里面Swift但我有点麻烦。NSTimer(timeInterval: 1, target: self, selector: test(), userInfo: nil, repeats: true)test()是同一个类中的函数。我在编辑器中发现了一个错误:无法找到接受所提供的参数的“init”重载当我改变selector: test()到selector: nil错误消失。我试过:selector: test()selector: testselector: Selector(test())但什么都没用,我在推荐信中找不到解决办法。
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

下面是一个关于如何使用SelectorSWIFT班级:

override func viewDidLoad() {
    super.viewDidLoad()

    var rightButton = UIBarButtonItem(title: "Title", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("method"))
    self.navigationItem.rightBarButtonItem = rightButton}func method() {
    // Something cool here   
}

注意,如果作为字符串传递的方法不起作用,它将在运行时失败,而不是编译时,并使应用程序崩溃。注意


查看完整回答
反对 回复 2019-06-06
?
温温酱

TA贡献1752条经验 获得超4个赞

另外,如果您的(SWIFT)类不是从Object-C类降下来的,那么在目标方法名称字符串的末尾必须有一个冒号,并且您必须在目标方法中使用@objc属性。

var rightButton = UIBarButtonItem(title: "Title", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("method"))
@objc func method() {
    // Something cool here   
}

否则,您将在运行时得到“未识别的选择器”错误。


查看完整回答
反对 回复 2019-06-06
  • 3 回答
  • 0 关注
  • 936 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信