OC里的@selector 在Swift的对应用法

更新: 今天(2016年3月23日)Swift正式发布2.2 已经添加了#selector辅助语法, 不用纠结字符串的事儿了.

OC中的@selector对应到Swift里是Selector对象

Selector对象是通过字符串来初始化的,没法像OC那样具备语法检测的机制,因此字符串的形式就需要十分注意了

  1. 无参数的形式:
func test1()
Selector("test1")
  1. 一个参数的情况
func test2(arg: NSNumber)
Selector("test2:")
  1. 一个参数,并且是带参数名的情况:
func test3(arg arg: NSNumber)
Selector("test3WithArg:")

注意: 这里使用了一个很特别的"With"的形式, 其实这和OC里的习惯用法是类似的

对于函数test3, 我们在OC的习惯写法是这样的:
  - (void) test3WithArg:(NSNumber)arg {}
  1. 多个参数的形式
func test4(arg: NSNumber arg2: NSNumber)
Selector("test4:arg2:")

注意,如果第一个参数带了参数名,也是需要用With的形式.

另外,Selector有一个从字符串默认构造函数,因此在performSelector等方法需要传递Selector类型对象的情况下,可以直接传递字符串参数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容