【发布时间】:2016-06-10 22:36:27
【问题描述】:
我有一个主类,也提供了一个命名空间:
class A {
}
以及通过扩展添加的嵌套类(都是为了使用单独的文件):
extension A {
class B {
}
}
我想通过扩展嵌套类 (B) 来为其添加功能;我试过了:
extension A.B {
}
我得到“'B' 不是 'A' 的成员类型”。
(我也尝试了一些不太合理的事情,但我将在此处省略它们以避免尴尬。阅读 Swift 文档和谷歌搜索“快速嵌套类扩展”也没有得到答案。)
知道是否以及如何实现吗?
更新:
此代码在单个文件(或 Playground)中按预期工作,感谢 user3441734 试用!
当这 3 个部分位于单独的文件中时仍然无法工作,这可能是 Swift 编译器当前实现中的一个错误。我将向 Apple 提交错误报告。
【问题讨论】:
-
您使用的是哪个版本的 Xcode/Swift?
-
嗨,马丁。需要明确的是,每个定义都在一个单独的文件中。既然如此,我刚刚设法在 Xcode 7.3.1 中用 Swift 2.2 重现了这个问题。如果您将所有定义放在一个文件中(就像下面答案中的游乐场一样),一切正常。换句话说,这不是 Swift 本身的问题,而是编译器的问题。
标签: swift2