大佬教程收集整理的这篇文章主要介绍了@selector()在Swift?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
NSTimer(timeInterval: 1,target: self,SELEctor: test(),userInfo: nil,repeats: truE)
我在编辑器中出现错误:
当我改变选择器:test()到selector:nil的错误消失。
我试过了:
但仍有一些重要的基于ObjC的API使用选择器,包括定时器和目标/操作模式。 Swift提供了使用这些的选择器类型。 (Swift自动使用它代替ObjC的SEL类型。)
在Swift 2.2(Xcode 7.3)和更高版本(包括Swift 3 / Xcode 8)中:
您可以使用#SELEctor表达式从Swift函数类型构造一个SELEctor。
let timer = Timer(timeInterval: 1,target: object,SELEctor: #SELEctor(MyClass.test),repeats: falsE) button.addTarget(object,action: #SELEctor(MyClass.buttonTapped),for: .touchUpInsidE) view.perform(#SELEctor(UIView.insertSubview(_:aboveSubview:)),with: button,with: otherButton)
这个方法的伟大的事情?函数引用由Swift编译器检查,因此您可以将#SELEctor表达式仅与实际存在且有资格用作选择器的类/方法对组合使用(请参阅下面的“选择器可用性”)。您还可以根据需要,根据the Swift 2.2+ rules for function-type naming自由地使您的功能参考。
(这实际上是对ObjC的@SELEctor()指令的改进,因为编译器的-Wundeclared-SELEctor检查只验证命名的选择器存在。你传递给#SELEctor的Swift函数引用检查存在,类中的成员资格和类型签名。)
对于传递给#SELEctor表达式的函数引用,还有一些额外的警告:
>使用前面提到的syntax for function references(例如insertSubview(_:at
以上是大佬教程为你收集整理的@selector()在Swift?全部内容,希望文章能够帮你解决@selector()在Swift?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。