Können @Observable -Eigenschaftsänderungen außerhalb von Ansichten beobachtet werden?IOS

Programmierung für iOS
Anonymous
 Können @Observable -Eigenschaftsänderungen außerhalb von Ansichten beobachtet werden?

Post by Anonymous »

Ich habe ein einfaches Mikrofon , das @Observable entspricht, wobei öffentliche Eigenschaften, die Wiederholungen für einige Swiftui -Ansichten auslösen. Aber ich möchte auch, dass diese Eigenschaften Änderungen zur Auslöser der Logik in Nichts

Code: Select all

View
s, z. Spracherkennung starten oder stoppen. < /p>

Code: Select all

@Observable public class Microphone: NSObject {

public enum State: String {
case muted
case off
case on
case starting
}

public var state: State = .off
}
Vor der Einführung von @Observable in iOS 17 würde das Mikrofon ObservableObject implementieren, und seine Eigenschaften würden @Published werden , also nicht

Code: Select all

View
s könnte Sink () auf ihnen aufrufen, um Updates zu erhalten. Aber jetzt scheint es keine Möglichkeit zu tun, dies zu tun. Fehler:
>

.../microphon.swift kann den Wert des Typs 'Referenzschreiberkrophon ' auf erwartete Argumenttyp 'ReferenzwritableKeypath ' < /p>


/var/folders/zl/9mrxbhjd0kxfj1763408zfh80000gq/T/swift-generated-sources/@_swiftmacro_10CDAFMobile10MicrophoneC5state18ObservationTrackedfMp .Swift: 1: 46 Ungültige Neuausrichtung der synthetisierten Eigenschaft '_State'

Der synthetisierte Code weist darauf hin, dass ich den Status deklarieren kann Eigenschaft als beide @published und @observationigned . Jetzt kompiliert es, aber es ist unklar, ob dies immer noch dazu führt, dass die Ansichten aktualisiert werden. Gibt es eine bessere Möglichkeit, damit umzugehen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post