我创建了两个类Content
和Bucket
。 Bucket
包含一组Content
个对象,并通过公共属性公开。但是,当我这样做时,我收到错误:
属性不能声明为public,因为其类型使用内部类型
有关为何会引发错误的任何想法?
答案 0 :(得分:133)
您还必须公开Content
类的访问级别。
public class Content {
// some code
}
如documentation中所述:
公共变量不能定义为具有内部或私有 类型,因为类型可能无处可用 使用公共变量。
默认情况下,类被声明为internal
,因此您必须添加public
关键字才能将其公开。
功能也存在类似的规则。
函数的访问级别不能高于其参数类型 和返回类型,因为该函数可以在情况下使用 其组成类型不适用于周围的代码。
答案 1 :(得分:9)
Content
也必须声明为公开:
public class Content {
…
}
根据您的使用情况,您也可以将Bucket
声明为内部用户。在这种情况下,只需省略public
关键字。
答案 2 :(得分:1)
我的问题是名称空间问题。
我已经声明了一个名为Data
的枚举,并且与Swift Data
类(尤其是Core Data模型中的imageData: Data
属性)混为一谈。