Восстановление состояния в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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