without the structs stored protocol not must its from does designated all swift struct initialization

the - ¿Cómo puedo hacer público de forma predeterminada el inicializador de miembros para las estructuras en Swift?



structs swift 4 (1)

Leí el manual:

"Inicializadores de Memberwise predeterminados para los tipos de estructura El inicializador de memberwise predeterminado para un tipo de estructura se considera privado si cualquiera de las propiedades almacenadas de la estructura es privada. De lo contrario, el inicializador tiene un nivel de acceso interno.

Al igual que con el inicializador predeterminado anterior, si desea que un tipo de estructura pública sea inicializable con un inicializador de miembro cuando se usa en otro módulo, debe proporcionar un iniciador público de miembro a sí mismo como parte de la definición del tipo ".

Extracto de "The Swift Programming Language" , sección "Control de acceso" .

Tengo un marco rápido que define una estructura:

public struct CollectionTO { var index: Order var title: String var description: String }

Sin embargo, parece que no puedo usar el inicializador implícito de miembro sabio de otro proyecto que importa la biblioteca. El error es ''CollectionTO'' no se puede inicializar porque no tiene iniciadores accesibles. es decir, no le está dando al inicializador de miembro implícito implícito la palabra clave pública.

var collection1 = CollectionTO(index: 1, title: "New Releases", description: "All the new releases")

Tengo que agregar mi propio método init así:

public struct CollectionTO { var index: Order var title: String var description: String public init(index: Order, title: String, description: String) { self.index = index; self.title = title; self.description = description; } }

... pero preferiría no si hay otra forma en que alguien lo sepa?