属性不能声明为公共,因为其类型使用内部类型

我创建了两个类 ContentBucketBucket包含一个由 Content对象组成的数组,并通过一个公共属性公开该数组。然而,当我这样做时,我收到了错误:

属性不能声明为公共,因为其类型使用内部类型

enter image description here

知道为什么会出现错误吗?

70533 次浏览

Content也必须公开:

public class Content {
…
}

根据您的用例,您也可以将 Bucket声明为内部的。在这种情况下,只需省略 public关键字即可。

您还必须声明 Content类 public 的访问级别。

public class Content {
// some code
}

文件所述:

公共变量不能定义为具有内部变量或私有变量 类型,因为该类型可能不是在 使用公共变量。

默认情况下,类声明为 internal,因此必须添加 public关键字才能使它们公开。

对于函数也存在类似的规则。

函数的访问级别不能高于其参数类型 以及返回类型,因为该函数可以在以下情况下使用 其组成类型对于周围的代码不可用。

我的问题是名称空间问题。

我声明了一个名为 Data的枚举,这与 Swift Data类混淆了,特别是在 Core Data 模型中的一个 imageData: Data属性。