【发布时间】:2023-03-18 15:31:01
【问题描述】:
我正在尝试使用 @IBAction 将按钮单击事件绑定到 Swift 方法。在 Objective-C 中,IBAction 的参数类型是 id。 Swift 中的 id 等价物是什么?
【问题讨论】:
标签: objective-c swift
我正在尝试使用 @IBAction 将按钮单击事件绑定到 Swift 方法。在 Objective-C 中,IBAction 的参数类型是 id。 Swift 中的 id 等价物是什么?
【问题讨论】:
标签: objective-c swift
Any,如果你知道发件人永远不是nil。
@IBAction func buttonClicked(sender : Any) {
println("Button was clicked", sender)
}
Any?,如果发件人可以是nil。
@IBAction func buttonClicked(sender : Any?) {
println("Button was clicked", sender)
}
AnyObject,如果你知道发件人永远不是nil。
@IBAction func buttonClicked(sender : AnyObject) {
println("Button was clicked", sender)
}
AnyObject?,如果发件人可以是nil。
@IBAction func buttonClicked(sender : AnyObject?) {
println("Button was clicked", sender)
}
【讨论】:
AnyObject?,这取决于你想如何处理 nil。
id 和无类型集合的 Objective-C 接口将被导入 Swift,因为它采用 Any 类型而不是 AnyObject。 SE-0116
任何对象
其他映射类型,
将某些 Objective-C 核心类型重新映射到 Swift 中的替代方案, 像 NSString 到 String 一样
将某些 Objective-C 概念重新映射到 Swift 中的匹配概念,例如 指向选项的指针
【讨论】: