相关疑难解决方法(0)

Swift中的@selector()?

我正在尝试创建一个NSTimerin Swift但我遇到了一些麻烦.

NSTimer(timeInterval: 1, target: self, selector: test(), userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)

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


我在编辑器中收到错误:

找不到接受提供的参数的'init'的重载

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

我试过了:

  • selector: test()
  • selector: test
  • selector: Selector(test())

但没有任何作用,我在参考文献中找不到解决方案.

selector nstimer swift

647
推荐指数
14
解决办法
30万
查看次数

在Swift中使用选择器是否有类型安全的方法?

在大多数情况下,Swift在类型安全方面是对Objective-C的巨大改进.一个明显的例外是选择器.在Objective-C中,使用表达式@selector(notARealSelector:)会给出编译器警告.Swift等价物Selector("notARealSelector:")将始终编译但在运行时将失败.

是否有一种在Swift中使用选择器的类型安全方法,所以我可以使用需要它们的Objective-C API?

我的NSNotification应用程序中有很多观察者,并希望进行某种编译时检查,我不会在我的选择器中输入拼写错误.

编辑:具体用例是NSNotificationCenter.addObserver.

selector type-safety swift

23
推荐指数
1
解决办法
1067
查看次数

标签 统计

selector ×2

swift ×2

nstimer ×1

type-safety ×1