gpt4 book ai didi

swift - 类不符合协议(protocol)。为什么?

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:32 25 4
gpt4 key购买 nike

class Controller<U: NSObject> {}

protocol Robert {
associatedtype T
associatedtype U: Controller<T>
var fetcher: U { get }
}

class Telephone: NSObject {}

class Object: Telephone {}

class Turtle: Controller<Object> {}

class Fish: Robert {

typealias T = Object
typealias U = Turtle

let x = Turtle()

var fetcher: Turtle {
return x
}

}

我不明白为什么。任何帮助表示赞赏。

选择Xcode“Fix It”选项时,插入了一个用于'fetcher的 stub 。但是 Fetcher 已经有了类型别名。

最佳答案

这已经被识别了as a bug在 Swift 4 中。现在我们必须避免关联类型受到具有泛型约束的类型的约束。

所以这不是很酷

associatedtype U: Controller<T>

删除它会产生以下效果。

protocol Robert {
associatedtype T: NSObject
var fetcher: Controller<T> { get }
}

关于swift - 类不符合协议(protocol)。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46934001/

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