gpt4 book ai didi

swift2 - Swift 中嵌套类型的扩展

转载 作者:行者123 更新时间:2023-12-03 06:59:20 24 4
gpt4 key购买 nike

我有一个主类,还提供了一个命名空间:

class A {
}

以及通过扩展添加的嵌套类(所有这些都是为了使用单独的文件):

extension A {
class B {
}
}

我想通过扩展嵌套类 (B) 来添加功能;我试过:

extension A.B {
}

我得到“'B'不是'A'的成员类型”。

(我也尝试过一些不太合理的事情,但我会在这里省略它们以避免尴尬。阅读 Swift 文档并谷歌搜索“swift 嵌套类扩展”也没有得到答案。)

知道是否以及如何实现这一点吗?

<小时/>

更新:

此代码在单个文件(或 Playground)中按预期工作,感谢 user3441734 的尝试!

当这 3 个部分位于单独的文件中时仍然不起作用,这可能是 Swift 编译器当前实现中的一个错误。我将向 Apple 提交错误报告。

最佳答案

这个问题似乎与 SR-631 有关。我遇到过类似的问题,我猜编译器正在尝试处理在定义嵌套类之前扩展嵌套类的文件。因此,您会收到此错误,表明 A 没有成员 B。

我找到的解决方案是转到目标设置,打开构建阶段

enter image description here

编译源部分中,您应该将定义嵌套类的文件放在扩展它的文件上方。

更新

fix将随 Xcode 10.2 一起发布

关于swift2 - Swift 中嵌套类型的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35673290/

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