Swift 3.1 循环元数据的嵌套泛型错误
Swift 3.1 Nested Generics Bug with Cyclic Metadata
首先感谢您的光临。我目前正在玩 Swift 3.1 嵌套泛型,我遇到了初始化错误。
class NestedProduct<T> {
enum Gadget {
case smartphone
case laptop
case fridge
case others(T)
}
enum Company {
case Samsung
case Apple
case Sony
case others(T)
}
let company: Company
let gadget: Gadget
let reviews: [T]
init(enterCompany: Company, enterGadget: Gadget, enterReView: [T]) {
company = enterCompany
gadget = enterGadget
reviews = enterReView
}
}
现在,我尝试初始化
let product = NestedProduct<String>(enterCompany: NestedProduct.Company.Apple,
enterGadget: NestedProduct.Gadget.laptop,
enterReView: ["Good"])
但是,我收到一条错误消息,
GenericCache(0x11102a518): cyclic metadata dependency detected, aborting
我不知道为什么会这样。你们能帮忙吗?谢谢!
看起来这是一个已知问题:https://bugs.swift.org/browse/SR-3779
但是,我可以通过将枚举标记为间接来规避这一点。这会将关联值存储在另一个打破循环依赖的地方。
indirect enum Gadget {
case smartphone
case laptop
case fridge
case others(T)
}
indirect enum Company {
case Samsung
case Apple
case Sony
case others(T)
}
首先感谢您的光临。我目前正在玩 Swift 3.1 嵌套泛型,我遇到了初始化错误。
class NestedProduct<T> {
enum Gadget {
case smartphone
case laptop
case fridge
case others(T)
}
enum Company {
case Samsung
case Apple
case Sony
case others(T)
}
let company: Company
let gadget: Gadget
let reviews: [T]
init(enterCompany: Company, enterGadget: Gadget, enterReView: [T]) {
company = enterCompany
gadget = enterGadget
reviews = enterReView
}
}
现在,我尝试初始化
let product = NestedProduct<String>(enterCompany: NestedProduct.Company.Apple,
enterGadget: NestedProduct.Gadget.laptop,
enterReView: ["Good"])
但是,我收到一条错误消息,
GenericCache(0x11102a518): cyclic metadata dependency detected, aborting
我不知道为什么会这样。你们能帮忙吗?谢谢!
看起来这是一个已知问题:https://bugs.swift.org/browse/SR-3779
但是,我可以通过将枚举标记为间接来规避这一点。这会将关联值存储在另一个打破循环依赖的地方。
indirect enum Gadget {
case smartphone
case laptop
case fridge
case others(T)
}
indirect enum Company {
case Samsung
case Apple
case Sony
case others(T)
}