100 我创建了两个类Content和Bucket。 Bucket包含Content对象数组,并通过公共属性公开该对象。但是,当我这样做时,会收到错误消息: 无法将属性声明为公共属性,因为其类型使用内部类型 关于为什么会引发错误的任何想法? swift — 史蒂夫 source 很高兴看到一种只向公众公开基础课的方法,例如public(Array<NSObject>) let contents: Array<Content> — Ben Leggiero
174 您还必须声明Content公共类的访问级别。 public class Content { // some code } 如文档中所述: 不能将公共变量定义为具有内部或私有类型,因为在使用公共变量的所有地方该类型可能都不可用。 internal默认情况下,类被声明为类,因此您必须添加public关键字以使其公开。 对于功能也存在类似的规则。 函数不能具有比其参数类型和返回类型更高的访问级别,因为该函数可以在周围的代码无法使用其组成类型的情况下使用。 — 慈汉泰克 source 3 好答案。我还发现,直到重新启动Xcode(9.2),错误才会消失。 — Jasongiss '18
9 Content 也必须声明为公开: public class Content { … } 根据您的用例,您也可以声明Bucket为内部。public在这种情况下,只需省略关键字。 — 科拉克托 source
1 我的问题是名称空间问题。 我已经声明了一个名为的枚举,Data并且该枚举与Swift Data类无关,尤其imageData: Data是Core Data模型中的一个属性。 — ka source
public(Array<NSObject>) let contents: Array<Content>