Что я здесь сделал не так при работе с API?IOS

Программируем под IOS
Ответить
Anonymous
 Что я здесь сделал не так при работе с API?

Сообщение Anonymous »

Во-первых: я новичок в Swift и SwiftUI. Буду признателен за любую помощь, даже если она не связана с моим вопросом!
Теперь мой вопрос:
Чтобы попрактиковаться в SwiftUI и API, я хочу создать небольшое приложение, которое отображает некоторые данные о коронавирусе, очень простое. Это API, который я использовал: Coronavirus API.
Теперь это мой код:

Код: Выделить всё

import SwiftUI

struct GlobalResult: Decodable {
var cases: Int
var deaths: Int
var recovered: Int
}

struct Statistics : View {
@State var global: GlobalResult!

var body: some View {
VStack {
VStack {
Text("\(self.global.cases)")
}
}.onAppear() {
ApiShared.shared.getData()
}
}
}

class Api {
@Published var data: GlobalResult!

func getData() {
let url = "https://corona.lmao.ninja/v2/all"

let session = URLSession(configuration: .default)

session.dataTask(with: URL(string: url)!) { (data, _, err) in

if err != nil {

print((err?.localizedDescription)!)
return
}

let json = try! JSONDecoder().decode(GlobalResult.self, from: data!)

DispatchQueue.main.async {
self.data = json
}
}
.resume()
}
}

class ApiShared {
static let shared = Api()
}

struct Statistics_Previews: PreviewProvider {
static var previews: some View {
Statistics()
}
}
Но это не работает! Я следил за некоторыми уроками на YT и смог заставить его работать. Может ли кто-нибудь мне помочь?
Когда я удалю Оператор
он говорит:

"Неустранимая ошибка: неожиданно обнаружено ноль при неявном развертывании необязательного значения"


Подробнее здесь: https://stackoverflow.com/questions/622 ... ith-an-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»