使用 Swift 4,我在同一个文件中定义了两个结构,其中一个是私有的,所以这个文件是唯一可以访问它的文件。此外,我依赖于结构的默认/综合初始化程序,即我没有明确定义一个:
private struct A {
private let string: String
...
}
struct B {
func foo() {
let a = A(string: "bar")
...
}
}
但是,这将无法编译并出现以下错误:
由于“私人”保护级别,“A”初始化程序不可访问
我不想A访问其他文件,所以我尝试通过制作它来解决它fileprivate(这应该相当于private在这种情况下),但是会发生相同的编译错误(并且它仍然抱怨保护级别是private)。
有没有办法保留这个结构fileprivate并仍然获得一个公开所有未初始化属性的合成初始化程序?IEA.init(string:)