Como usar o pacote no SwiftUI com imagem
Por exemplo: eu tenho Bundle no projeto, chama-se "Game.Bundle"
let b :Bundle = Bundle.init(path: Bundle.main.path(forResource:"Game", ofType:"bundle")!)!
Image("Giyuu",bundle:self.b)
mas Bundle não funciona.
como posso usar o pacote personalizado

Respostas
O SwiftUI Image(_ , bundle: _)
procura o recurso de imagem no catálogo de ativos do pacote correspondente. No seu caso, a imagem é apenas incorporada como arquivo normal, portanto, você deve localizá-la e carregá-la como arquivo. Image
ela mesma não pode fazer isso, então ela deve ser construída com UIImage
essa possibilidade.
Portanto, supondo que você Game.bundle
esteja na PlugIns
subpasta do pacote principal (se não - apenas corrija a construção do caminho correspondente abaixo), aqui é uma abordagem possível.
Testado com 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)
}
}
Seu snippet conforme fornecido parece referenciar b
tanto self
uma instância quanto uma variável local
let b :Bundle = Bundle.init(path: Bundle.main.path(forResource:"Game", ofType:"bundle")!)!
Image("Giyuu",bundle:self.b)
você queria?
let bundle :Bundle = Bundle.init(path: Bundle.main.path(forResource:"Game", ofType:"bundle")!)!
let image = Image("Giyuu",bundle:bundle)
Ou refatorado para eliminar desdobramentos de força !
com alguma análise de problema adicionada.
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
}