gpt4 book ai didi

ios - 在 Swift iOS 中为协议(protocol)分配委托(delegate)时出现编译器错误

转载 作者:行者123 更新时间:2023-11-28 13:21:47 25 4
gpt4 key购买 nike

我在为对象分配委托(delegate)时遇到问题,该对象是在 Swift 中定义协议(protocol)的类的实例,如下所示:

我将代码简化为最基本的部分以举例说明问题:这是带有协议(protocol)的类

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

这是符合协议(protocol)的类

    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()
}
}

我尝试了各种替代方法来分配委托(delegate),但都没有成功。知道我错过了什么吗?

最佳答案

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

You cannot conditionally assign to a property of an optional object. (16922562)

For example, this is not supported:

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

所以你应该做类似if let realObject = object { ... }

关于ios - 在 Swift iOS 中为协议(protocol)分配委托(delegate)时出现编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com