Property cannot be declared public because its type uses an internal type

My issue was a namespace problem.

I had declared an enum called Data and that was mucking with the Swift Data class, especially an imageData: Data property within a Core Data model.


Content must be declared as public too:

public class Content {
  …
}

Depending on your use-case you might declare Bucket as internal, too. Just omit the public keyword in this case.


You have to declare the access level of the Content class public as well.

public class Content {
   // some code
}

As stated in the documentation:

A public variable cannot be defined as having an internal or private type, because the type might not be available everywhere that the public variable is used.

Classes are declared as internal by default, so you have to add the public keyword to make them public.

A similar rule exists for functions as well.

A function cannot have a higher access level than its parameter types and return type, because the function could be used in situations where its constituent types are not available to the surrounding code.

Tags:

Swift