@selector()在SWIFT?

@selector()在SWIFT?

我想创造一个NSTimer在……里面Swift但我有点麻烦。

NSTimer(timeInterval: 1, target: self, selector: test(), userInfo: nil, repeats: true)

test()是同一个类中的函数。


我在编辑器中发现了一个错误:

无法找到接受所提供的参数的“init”重载

当我改变selector: test()selector: nil错误消失。

我试过:

  • selector: test()

  • selector: test

  • selector: Selector(test())

但什么都没用,我在推荐信中找不到解决办法。


犯罪嫌疑人X
浏览 890回答 3
3回答

回首忆惘然

下面是一个关于如何使用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    }注意,如果作为字符串传递的方法不起作用,它将在运行时失败,而不是编译时,并使应用程序崩溃。注意

温温酱

另外,如果您的(SWIFT)类不是从Object-C类降下来的,那么在目标方法名称字符串的末尾必须有一个冒号,并且您必须在目标方法中使用@objc属性。var rightButton = UIBarButtonItem(title: "Title", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("method")) @objc func method() {     // Something cool here    }否则,您将在运行时得到“未识别的选择器”错误。
打开App,查看更多内容
随时随地看视频慕课网APP