I want to get the home_name of the first team. But it shows me blank.
This is my JSON fetching Code:
class NetworkManager: ObservableObject {
@Published var posts = [Post]()
static var test = ""
func fetchData() {
if let url = URL(string: "https://livescore-api.com/api-client/teams/matches.json?number=10&team_id=19&key=##KEY##&secret=##SECRET##&number=7&team_id=46") {
let session = URLSession(configuration: .default)
let task = session.dataTask(with: url) { (gettingInfo, response, error) in
if error == nil {
let decoder = JSONDecoder()
if let safeData = gettingInfo {
do {
let results = try decoder.decode(Results.self, from: safeData)
DispatchQueue.main.async {
self.posts = results.data
NetworkManager.test = results.data[0].home_name
}
} catch {
print(error)
}
}
}
}
task.resume()
}
}
}
My struct:
import Foundation
struct Results: Decodable {
let data: [Post]
}
struct Post: Decodable, Identifiable {
var id: String {
return objectID
}
let objectID: String
let home_name: String
let away_name: String
}
And my view but the view shouldn't be the problem.
struct ContentView: View {
@ObservedObject var networkManager = NetworkManager()
var body: some View {
Text(NetworkManager.test)
.onAppear {
self.networkManager.fetchData()
}
}
}
resultscontains?testisn't marked asPublished@Published var test = ""api_keyandsecret. That's very bad to share it online for everyone to grab!!