Восстановление состояния в SwiftUIIOS

Программируем под IOS
Anonymous
Восстановление состояния в SwiftUI

Сообщение Anonymous »

Я рассматриваю восстановление состояния в приложении SwiftUI. Я нашел этот пример кода от Apple, который использует ObservableObject и сохраняет навигационные данные в SceneStorage при каждом изменении объекта.
Мне интересно, как лучше всего подойти к этому с помощью класса Observable (макрос из iOS 17). Могу ли я перестроить это, используя поток .values ​​необходимых свойств, или есть более умный способ. Вот фрагмент кода, о котором я говорю:

Код: Выделить всё

// In Navigation: ObservableObject
var objectWillChangeSequence: AsyncPublisher {
objectWillChange
.buffer(size: 1, prefetch: .byRequest, whenFull: .dropOldest)
.values
}

// In View
.task {
if let data = data {
navModel.jsonData = data
}

for await _ in navModel.objectWillChangeSequence {
data = navModel.jsonData
}
}
Учитывая, что моя модель навигации имеет более одного пути навигации, я теоретически мог бы построить поток, используя pathOne.values и комбинироватьLatest с pathTwo.values, но мне бы хотелось знать, есть ли более простой способ. Конечно, я знаю, что теоретически я все еще могу использовать ObservableObject, как это делается в примере кода, но я бы предпочел использовать новый макрос Observable, если это работает.


Подробнее здесь: https://stackoverflow.com/questions/784 ... in-swiftui

Вернуться в «IOS»