Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftUI在主捆绑包中未找到名为的映像_Ios_Swiftui - Fatal编程技术网

Ios SwiftUI在主捆绑包中未找到名为的映像

Ios SwiftUI在主捆绑包中未找到名为的映像,ios,swiftui,Ios,Swiftui,我正在学习SwiftUI,但对图像(名称:String)有问题 这是我的ContentView var body: some View { VStack { Image("test") .resizable() .aspectRatio(contentMode: .fit) .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight

我正在学习SwiftUI,但对图像(名称:String)有问题

这是我的ContentView

var body: some View {
    VStack {
        Image("test")
            .resizable()
            .aspectRatio(contentMode: .fit)
            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 75, alignment: .center)
            .clipped()
        List(retriever.items) { item in
            Row(coin: item)
        }
    }
}
当我运行这个项目时,我得到了这个信息 “线程1:致命错误:在主捆绑包中找不到名为test的映像”

所以,我在下面试过

  • 图像(“test.jpg”)
  • 图像(“图像/测试”)
  • 图像(“images/test.jpg”)
但是,结果是一样的

那张照片就在这条路上 '项目根目录/images/test.jpg'


奇怪的是,这段代码运行良好

Image(uiImage: UIImage(named: "test.jpg")!)

如何解决此问题?

您应该将图像放到Assets.xcsets文件夹中。错误消息逐字告诉您-“我在Assets.xcsets中找不到此图像”。

将图像保存为PDF格式(“test.PDF”),并将其拖到资产目录的编辑器中
=>图像(“测试”)将正常…

请检查图像集的
内容。json
是否包含图像名称的相同名称。请看下图


这对我来说很有效。

你必须将你的图像添加到Xcode项目结构中的资产目录中,这样苹果公司就可以在幕后施展魔法,让它们可以用于多种屏幕尺寸。双击xcode编辑器左侧项目窗格中的Assets.xcsets文件夹(如果没有,则创建一个Assets文件夹),然后将图像文件拖放到目录窗格中


类似于
Image(“您的\u Image\u name”)
的调用在此之后应该可以工作。

我可能错了,但我认为swift默认为.png文件。也许当您只编写图像(“test”)时,它正在寻找“test.png”


尝试将图像另存为.png,将其放在Assets文件夹中,并像上面一样使用图像(“测试”)。

还要检查Assets.xcsets是否包含在捆绑资源中进行复制。您可以通过转到目标->构建阶段->复制捆绑资源来找到这一点


从谷歌那里找到了这条线索。没有一个答案对我有用。我已将该
PNG
文件放入项目中,这起到了作用:

if let image_url = Bundle.main.url(forResource: "selfie", withExtension: "png") {
    Image(uiImage: UIImage(imageLiteralResourceName: image_url.lastPathComponent)!)
        .renderingMode(.original)
        .resizable().scaledToFit()
}

我不得不使用重载版本的
Image(uiImage:uiImage(imageLiteralResourceName:)
。只需指定该图像的文件名,使用图像文件的绝对路径将不起作用

我能够根据Monica的答案解决我的问题。最后,捆绑资源中没有包含my Assets.xcsets。

我尝试了此操作,但问题仍然出现,即使我清理了生成文件夹。即使使用xcsets,我也会遇到同样的问题,这里缺少什么?请将您的项目上载到GitHub之类的工具,并共享链接@JulienSanchez@Radagast我也看到了同样的问题。这是github链接(),非常感谢您的帮助。我也有同样的问题。如果我与可选的
图像(uiImage:uiImage(名为:“test.jpg”)!)
做相同的操作,它就会工作。你解决了吗?!这是正确的,它默认为查找扩展名为“.png”的文件。您甚至不必向xcassets本身添加文件-如果它们是在应用程序包(如.png)中提供的,那么它们将是可发现的