编译器在Swift iOS中为一个协议分配委托时出错

我有一个问题,委派一个对象是一个类的实例,在Swift中定义一个协议,如下所示:

我将代码简化为简单的例子来说明问题:这是协议类

protocol TheProtocol { func notifyDelegate() } class ClassWithProtocol: NSObject { var delegate: TheProtocol? fire() { delegate?.notifyDelegate() } } 

这是符合协议的类

  class ClassConformingToProtocol: NSObject, TheProtocol { var object: ClassWithProtocol? func notifyDelegate() { println("OK") } init() { object = ClassWithProtocol() object?.delegate = self // Compiler error - Cannot assign to the result of this expression object?.fire() } } 

我已经尝试了各种替代方法来分配委托没有成功。 任何想法我失踪?

发行说明的已知问题部分说:

您不能有条件地分配给可选对象的属性。 (16922562)

例如,这不被支持:

 let window: NSWindow? = NSApplication.sharedApplication.mainWindow window?.title = "Currently experiencing problems" 

所以你应该做一些事情, if let realObject = object { ... }