Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
属性的Swift索引超出范围_Swift_Swiftui - Fatal编程技术网

属性的Swift索引超出范围

属性的Swift索引超出范围,swift,swiftui,Swift,Swiftui,我收到以下代码的索引超出范围运行时错误。这看起来很简单,所以我很惊讶会出现一个问题。如果有人能帮我调试这将不胜感激 import SwiftUI struct sampleView: View { var foo: Foo = Foo(name: "Mark Johnson", images: [Image("IMG_1039")]) var body: some View { NavigationView { VStack{

我收到以下代码的索引超出范围运行时错误。这看起来很简单,所以我很惊讶会出现一个问题。如果有人能帮我调试这将不胜感激

import SwiftUI

struct sampleView: View {

    var foo: Foo = Foo(name: "Mark Johnson", images: [Image("IMG_1039")])

    var body: some View {
        NavigationView {
            VStack{

                foo.images[0].resizable()  // this line raises the error
                    .frame(width: 200.0, height: 200.0)

        }
    }
}

我发现在初始化变量之前,使用变量存在问题。所以我尝试初始化变量foo,它工作正常

struct Foo {
    var name : String
    var images : [Image]
}

struct sampleView : View {
    var foo : Foo


    init() {
        self.foo = Foo(name: "Mark Johnson", images: [Image("IMG_1039")]) 
    }

    var body: some View {
        NavigationView {
            VStack{
                foo.images[0].resizable()
                    .frame(width: 200.0, height: 200.0)

            }
        }
    }
}
现在一切正常,没有任何问题。 快速查看附带的屏幕截图

希望这对你有帮助。
快乐的编码…

这是一个很好的观点。然而,当我用Image(“IMG_1039”)替换foo.images[0]时,它工作得非常完美,基本上就是这样。我还尝试用系统映像替换映像,但仍然有效。断点显示,除了最后一条注释的images attributeSorry之外,所有内容都已正确初始化-对于系统映像,它仍然不起作用。试过@State,但仍然给我问题你能把它简化成一个小项目,然后上传到github或类似的网站上,这样我就可以试着运行它了吗?我无法从您显示的代码中重现该问题,因此您未显示的某个区域一定发生了一些问题。当然,我会在一小时后发送一个链接,如果您无法在
视图
主体运行之前依赖自初始化属性进行初始化,我会将其描述为SwiftUI中的一个错误。即使错误是编译器应该警告…:)