如何确保我的变量“myNumber”在范围内?

问题描述 投票:0回答:1

import SwiftUI

struct ContentView: View {
    
    @State var myNumber = "0"
    
    
    var body: some View {
        
        
        ZStack{
            Color.clear
                .background(
            Image("wallpaper1")
                .resizable()
                .ignoresSafeArea()
                .scaledToFill())
            VStack{
                Rectangle()
                    .frame(width: 230.0, height: 220.0)
                    .cornerRadius(1000.0)
                    .padding(.bottom)
                    .foregroundColor(.black)
                Spacer()
            }
            VStack() {
                Text(String(myNumber))
                Spacer()
            }
            .padding(.vertical, 100.0)
            .font(.largeTitle)
                .foregroundColor(.white)
                .fontWeight(.bold)
            
            Button {
                change()
            }
        label:{
            Image("smallbutton")
        }
                
            }
            
                
        }
      
        
    }
func change() {
    myNumber = "0" + String(Int.random(in: 1...10))
}

#Preview {
    ContentView()
}

您好,我是 Swift 新手,这是我的第一周。 我确信这是一个简单的答案,但我现在已经盯着我的电脑一个小时了。

为什么错误“在底部我的函数旁边出现的范围内找不到‘myNumber’?我正在 Code with Chris 课程中制作 Number-Climb 游戏项目。

我尝试更改变量名称,检查括号的数量以及它是否位于正确的位置,然后删除了文本。

我期望将 1 到 10 之间的随机整数添加到变量中,直到达到 50,然后减少直到达到零。

swift xcode variables swiftui
1个回答
0
投票

您的代码中有一个拼写错误。在 #Preview 部分中,您编写了 #Preview 而不是用于定义视图的结构体。并且更改函数应该位于 ContentView 结构内。

import SwiftUI

struct ContentView: View {
    
    @State var myNumber = "0"
    
    var body: some View {
        ZStack {
            Color.clear
                .background(
                    Image("wallpaper1")
                        .resizable()
                        .ignoresSafeArea()
                        .scaledToFill()
                )
            
            VStack {
                Rectangle()
                    .frame(width: 230.0, height: 220.0)
                    .cornerRadius(1000.0)
                    .padding(.bottom)
                    .foregroundColor(.black)
                
                Spacer()
                
                VStack {
                    Text(String(myNumber))
                        .font(.largeTitle)
                        .foregroundColor(.white)
                        .fontWeight(.bold)
                    Spacer()
                }
                .padding(.vertical, 100.0)
                
                Button(action: {
                    change()
                }) {
                    Image("smallbutton")
                }
            }
        }
    }
    
    func change() {
        myNumber = "0" + String(Int.random(in: 1...10))
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.