属性的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中的一个错误。即使错误是编译器应该警告…:)