I'm having trouble with this error :
"Cannot convert value of type 'Binding'to expected type 'Binding<_>?'"
I think I'm coding in an out dated version of SwiftUI but I'm not 100% sure, so any help I can get will be awesome.
I displayed my code down below so you can take a look at it.
I'm not sure if the bottom part matters but I added it just to be safe.
ContentView
import SwiftUI
struct ContentView: View {
@State private var selection = 0
@State var networkManager = NetworkManager()
var body: some View {
TabView(selection: $selection){
NavigationView{
Text("First View")
.font(.title)
.navigationBarTitle(Text("Welcome"))
}
.tabItem {
VStack {
Image(systemName: "star.fill")
Text("Welcome")
}
}
.tag(0)
NavigationView{
List(networkManager.featureList.results.identified(by: \.url)) { featured in
Text(featured.name.capitalized)
}
.navigationBarTitle(Text("Featured"))
}
.tabItem {
VStack {
Image(systemName: "app.badge.fill")
Text("Featured")
}
}
.tag(1)
NavigationView{
Text("First View")
.font(.title)
.navigationBarTitle(Text("Repos"))
}
.tabItem {
VStack {
Image(systemName: "rectangle.stack.fill")
Text("Repos")
}
}
.tag(2)
NavigationView{
Text("First View")
.font(.title)
.navigationBarTitle(Text("Request"))
}
.tabItem {
VStack {
Image(systemName: "icloud.and.arrow.down.fill")
Text("Request")
}
}
.tag(3)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
ApiView
import Foundation
import SwiftUI
import Combine
class NetworkManager: ObservableObject {
var didChange = PassthroughSubject<NetworkManager, Never>()
var featureList = FeaturedApiList(results: []){
didSet{
didChange.send(self)
}
}
init(){
guard let url = URL(string: "https://myurl.com/repos.json") else { return }
URLSession.shared.dataTask(with: url) { (data, _, _) in
guard let data = data else { return }
let featureList = try! JSONDecoder().decode(FeaturedApiList.self, from: data)
DispatchQueue.main.async {
self.featureList = featureList
}
}.resume()
}
}
Thanks!