Come utilizzare il pacchetto in SwiftUI con l'immagine
Ad esempio: ho Bundle nel progetto, si chiama "Game.Bundle"
let b :Bundle = Bundle.init(path: Bundle.main.path(forResource:"Game", ofType:"bundle")!)!
Image("Giyuu",bundle:self.b)
ma il pacchetto non funziona.
come posso usare il pacchetto personalizzato

Risposte
SwiftUI Image(_ , bundle: _)
cerca la risorsa immagine nel catalogo delle risorse del pacchetto corrispondente. Nel tuo caso l'immagine è semplicemente incorporata come file normale, quindi devi trovarla e caricarla come file. Image
di per sé non può farlo, quindi dovrebbe essere costruito con UIImage
ciò che ha tale possibilità.
Quindi, supponendo che tu Game.bundle
sia nella PlugIns
sottocartella del pacchetto principale (in caso contrario, correggi semplicemente la costruzione del percorso corrispondente di seguito) ecco un possibile approccio.
Testato con Xcode 12 / iOS 14
struct ContentView: View {
var body: some View {
Image(uiImage: gameImage(name: "test") ?? UIImage())
}
func gameImage(name: String, type: String = "png") -> UIImage? {
guard let plugins = Bundle.main.builtInPlugInsPath,
let bundle = Bundle(url: URL(fileURLWithPath:
plugins).appendingPathComponent("Game.bundle")),
let path = bundle.path(forResource: name, ofType: type)
else { return nil }
return UIImage(contentsOfFile: path)
}
}
Il tuo frammento come fornito sembra fare riferimento b
sia a self
un'istanza che a una variabile locale
let b :Bundle = Bundle.init(path: Bundle.main.path(forResource:"Game", ofType:"bundle")!)!
Image("Giyuu",bundle:self.b)
Volevi?
let bundle :Bundle = Bundle.init(path: Bundle.main.path(forResource:"Game", ofType:"bundle")!)!
let image = Image("Giyuu",bundle:bundle)
O rifattorizzato per eliminare gli scarti forzati !
con l'aggiunta di alcune analisi dei problemi.
func getGiyuuImage() -> Image {
guard let path = Bundle.main.path(forResource:"Game", ofType:"bundle"), let bundle = Bundle(path: path) else {
fatalError("dev error - no Game bundle")
}
let image = Image("Giyuu",bundle: bundle)
return image
}