我在 Swift 中定义了一个具有公共属性的结构
public struct MyStruct {
public let prop1: String
public let prop2: String
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我尝试通过执行以下操作来初始化结构
MyStruct(prop1: "abc", prop2: "def")
但我收到编译器错误,提示“由于‘内部保护’级别,MyStruct 初始化程序无法访问。”
该结构体和成员处于公共保护级别。所以我不明白什么是“内部”保护级别。
首先有五种不同的保护级别:private、fileprivate、internal和public。open
您在没有保护级别关键字的情况下声明的任何属性、函数或初始化程序都将自动声明为internal.
内部意味着您的属性、方法或初始值设定项可以在同一模块中的任何位置访问。
看起来您正在尝试从另一个模块创建一个新结构。最好的解决方案可能是创建您自己的解决方案,
init而不是自动生成的解决方案,并将其声明为公共。
希望这对您有帮助。
| 归档时间: |
|
| 查看次数: |
11199 次 |
| 最近记录: |