Mam szybki framework, który definiuje strukturę:
public struct CollectionTO {
var index: Order
var title: String
var description: String
}
Jednak wydaje mi się, że nie mogę użyć niejawnego inicjatora elementu członkowskiego z innego projektu, który importuje bibliotekę. Nie można zainicjować „CollectionTO”, ponieważ nie ma dostępnych inicjatorów. tj. nie przekazuje domyślnemu, niejawnemu inicjatorowi elementu wise, słowa kluczowego public.
var collection1 = CollectionTO(index: 1, title: "New Releases", description: "All the new releases")
Muszę dodać własną metodę init w następujący sposób:
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;
}
}
... ale wolałbym nie, gdyby ktoś wiedział o innym sposobie?
źródło
Chociaż nie jest możliwe posiadanie domyślnego inicjatora składowego, przynajmniej możesz go szybko utworzyć, wykonując następujące czynności:
źródło
Dopóki Apple to nie zmieni i nie sprawi, że będzie mniej irytujące, możesz użyć https://github.com/Bouke/SwiftInitializerGenerator (lub dowolnego innego) do tworzenia publicznych inicjatorów. Będzie więc mniej pracy. Próbowałem i działa. Xcode w wersji 10.0, High Sierra 10.13.6
źródło
Mamy teraz rubinowy klejnot 💎 do analizowania kompletnego pliku szybkiego modelu danych, wiersz po wierszu i dodawania publicznych modyfikatorów dostępu, publicznych domyślnych inicjatorów dla elementów członkowskich i innych rzeczy do oddzielnego automatycznie generowanego pliku wyjściowego szybkiego.
Ten klejnot nazywa się swift_republic
Sprawdź następującą dokumentację dotyczącą uruchomienia tego klejnotu:
https://github.com/mehul90/swift_republic
źródło
swift_republic
i działa dobrze.