Swift 符合协议的IBOutlet?

Swift 符合协议的IBOutlet?,swift,swift2,Swift,Swift2,在中,您似乎无法在Swift中创建符合协议的IBOutlet。我当前的解决方法是创建一个AnyObject类型的IBOutlet和一个符合我的协议的变量,然后将所述变量设置为awakeFromNib()中的outlet,如下所示: @IBOutlet private var fooOutlet: AnyObject! private var foo: FooProtocol! override func awakeFromNib() { super.awakeFromNib()

在中,您似乎无法在Swift中创建符合协议的IBOutlet。我当前的解决方法是创建一个AnyObject类型的IBOutlet和一个符合我的协议的变量,然后将所述变量设置为awakeFromNib()中的outlet,如下所示:

@IBOutlet private var fooOutlet: AnyObject!
private var foo: FooProtocol!

override func awakeFromNib() {
    super.awakeFromNib()

    foo = fooOutlet as? FooProtocol
}
我的问题是:有没有更好的方法来实现这一点?或者这是Swift实现这一目标的唯一方法吗?

这将起作用

@objc(FooProtocol)
protocol FooProtocol {}