Saya memiliki kerangka kerja cepat yang mendefinisikan struct:
public struct CollectionTO {
var index: Order
var title: String
var description: String
}
Namun, sepertinya saya tidak dapat menggunakan penginisialisasi bijak anggota implisit dari proyek lain yang mengimpor perpustakaan. Kesalahannya adalah 'CollectionTO' tidak dapat diinisialisasi karena tidak memiliki inisialisasi yang dapat diakses. yaitu itu tidak memberikan default implisit anggota bijaksana menginisialisasi kata kunci publik.
var collection1 = CollectionTO(index: 1, title: "New Releases", description: "All the new releases")
Saya harus menambahkan metode init saya sendiri seperti ini:
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;
}
}
... tapi saya lebih suka tidak jika ada cara lain ada yang tahu?
sumber
Meskipun tidak mungkin untuk memiliki initializer bijaksana anggota standar setidaknya Anda dapat membuatnya dengan cepat dengan langkah-langkah berikut:
sumber
Sampai Apple mengubahnya dan membuatnya tidak terlalu mengganggu, Anda dapat menggunakan https://github.com/Bouke/SwiftInitializerGenerator (atau lainnya) hal ini untuk pembuatan inisialisasi publik. Jadi itu akan kurang bekerja. Mencobanya dan berhasil. Xcode Versi 10.0, High Sierra 10.13.6
sumber
Kami sekarang memiliki permata ruby 💎 untuk mem-parsing file model data cepat lengkap, baris demi baris, dan menambahkan pengubah akses publik, penginisialisasi default anggota publik, dan hal-hal lain ke dalam file swift output otomatis yang dihasilkan secara otomatis.
Permata ini disebut swift_republic
Silakan periksa dokumentasi berikut untuk menjalankan permata ini:
https://github.com/mehul90/swift_republic
sumber
swift_republic
dan berfungsi dengan baik.