Swiftui, kombinieren: Pass @Published Property als @binding an ein anderes Objekt (Delegationsstil) vorbeiIOS

Programmierung für iOS
Anonymous
 Swiftui, kombinieren: Pass @Published Property als @binding an ein anderes Objekt (Delegationsstil) vorbei

Post by Anonymous »

Ich habe ein folgendes synthetisches Beispiel: < /p>

Code: Select all

final class MainViewModel: ObservableObject {
@Published var response: String?

func makeSecondaryViewModel() -> SecondaryViewModel {
SecondaryViewModel(response: $response) // Error
}
}

final class SecondaryViewModel: ObservableObject {
@Binding var response: String?

init(response: Binding) {
self._response = response
}

func performRequest() {
// Make request here
response = "The result of the request"
}
}

Ich erhalte einen Fehler, wenn ich versuche, SecondaryViewModel mit der Antwort Bindung:

Nicht konvertieren Wert des Typs des Typs 'veröffentlicht? />
Ich verstehe den Fehler, also habe ich 2 Fragen:

Was ist ein anderer. ObservableObject ?
Was wäre der beste Weg, um diese beiden ViewModels in einer delegationsähnlichen Beziehung zu verbinden, vielleicht ist mein Ansatz völlig falsch? />

Code: Select all

SecondaryViewModel(response: $mainViewModel.response)
< /code>
Das Problem ist, dass ich dies nicht tun kann, wenn ich mich im "MainViewModel" bin: < /p>
SecondaryViewModel(response: $self.mainViewModel.response) // doesn't work

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post