Parsed JSON. Now I'm trying to display all this in a view.
But getting an error
Cannot find 'newsFeed' in scope
Here is my code
--- PostsController.swift ---
import Foundation
struct NewsFeed: Codable {
var status:String = ""
var totalResults:Int = 0
var posts:[PostItem]
}
struct PostItem: Codable {
var id:Int
var title:String
var link:String
var date:String
var category:String
var thumbnail:String
var excerpt:String
var content:String
}
--- AppSwiftUIApp.swift ---
import SwiftUI
@main struct AppSwiftUIApp: App {
init() {
let urlString = "/json_news.json"
let url = URL(string: urlString)
guard url != nil else {
return
}
let session = URLSession.shared
let dataTask = session.dataTask(with: url!) { (data, response, error) in
if error == nil && data != nil {
let decoder = JSONDecoder()
do {
let newsFeed = try decoder.decode(NewsFeed.self, from: data!)
print(newsFeed.posts)
} catch {
print("Error: \(error)")
}
}
}
dataTask.resume()
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
--- MainPageView.swift ---
import SwiftUI
struct MainPageView: View {
var body: some View {
HeaderView()
ScrollView(.vertical, showsIndicators: true) {
VStack() {
ForEach(newsFeed.posts) { post in
VStack(alignment: .leading) {
Image(post.thumbnail)
.resizable()
.aspectRatio(contentMode: .fit)
}
}
}
.padding(10)
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
FooterView()
}
}
How I can pass a variable to a loop in a view so that I can use it?