什么是Swift中的Objective-C id?

时间:2014-06-03 01:14:44

标签: objective-c swift

我正在尝试使用@IBAction将按钮单击事件绑定到Swift方法。在Objective-C中,IBAction的参数类型是id。什么是Swift中的id等价物?

2 个答案:

答案 0 :(得分:85)

Swift 3

Any,如果您知道发件人永远不会nil

@IBAction func buttonClicked(sender : Any) {
    println("Button was clicked", sender)
}

Any?,如果发件人可能是nil

@IBAction func buttonClicked(sender : Any?) {
    println("Button was clicked", sender)
}

Swift 2

AnyObject,如果您知道发件人永远不会nil

@IBAction func buttonClicked(sender : AnyObject) {
    println("Button was clicked", sender)
}

AnyObject?,如果发件人可能是nil

@IBAction func buttonClicked(sender : AnyObject?) {
    println("Button was clicked", sender)
}

答案 1 :(得分:0)

AnyObject

其他映射类型,

  

将某些Objective-C核心类型重新映射到Swift中的替代品,   比如NSString to String

     

将某些Objective-C概念重新映射到Swift中的匹配概念,例如   指向期权的指针