Переменная от JSON содержимого в качестве значения для счетчика - PullRequest
1 голос
/ 22 апреля 2020

Я буквально начинаю программировать, извините за вопрос ладьи ie. Я работаю в Xcode / SwiftUI и пытаюсь сделать счетчик, где начальное значение берется из файла JSON.

Мне удается извлечь значение для строк ... но, потратив часы, пытаясь выяснить, как установить начальный счетчик на значение "корпус", я наконец-то прошу помощи!

Мой JSON файл отформатирован так:

{
        "id": 1,
        "name": "Chaser",
        "type": "Level 1",
        "hull": 5,
        "shields": 0,
        "imageName": "chaser"
    },

и моя структура выглядит следующим образом:

struct Enemy: Hashable, Codable, Identifiable {
    var id: Int
    var name: String
    var type: String
    var hull: Int
    var shields: Int
    fileprivate var imageName: String

}

На моей странице мой код выглядит так:

struct EnemyDetails: View {

    @State var count : Int = 0

    var enemy : Enemy

    var body: some View {
        VStack {
            EnemyImage(image: Image("EnemyImage"))
                .frame(height:300)

            VStack {
                Spacer()
                Text(enemy.name).font(.title)
                Text(enemy.type)
                Spacer()

                HStack {
                    Button(action: {self.count = self.count - 1}) {
                    Image("Decrease")
                    }.padding(20)
                    Text("\(count)").font(.system(size:100)).padding(20)
                    Button(action: {self.count = self.count + 1}) {
                    Image("Increase")
                    }.padding(20)
                }
                Spacer()

            }
        }

    }
}

Я бы хотел, чтобы значение "Count" было значением "Hull" из файла JSON.

Кто-нибудь может помочь? Большое спасибо!

1 Ответ

0 голосов
/ 22 апреля 2020

Вот оно

struct EnemyDetails: View {

    var enemy : Enemy
    @State private var count : Int // don't initialise here

    init(enemy: Enemy) {
       self.enemy = enemy
       _count = State(initialValue: enemy.hull)  // << initial state !!
    }

    // ... other your code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...