加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift 3.1嵌套泛型Bug与循环元数据

发布时间:2020-12-14 05:31:10 所属栏目:百科 来源:网络整理
导读:首先,感谢您的光临.我正在玩 Swift 3.1嵌套泛型,我在初始化时遇到了错误. class NestedProductT { enum Gadget { case smartphone case laptop case fridge case others(T) } enum Company { case Samsung case Apple case Sony case others(T) } let compan
首先,感谢您的光临.我正在玩 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)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读