В настоящее время я создаю небольшое приложение с одним видом, чтобы помочь изучить еще немного SwiftUI. Приложение представляет собой простое приложение для расчета значений в соотношении. У меня есть 4 основных переменных на данный момент, левая и правая части отношения, а также первое и второе значения, которые будут рассчитываться в соотношении. Изначально каждое из них было сохранено как @State
свойства:
@State var leftSide = Double()
@State var rightSide = Double()
@State var value1 = Double()
@State var value2 = Double()
В приложении есть 4 ползунка, которые позволяют изменять каждую переменную независимо друг от друга. Теперь я хочу, чтобы изменение переменной value1
также обновляло value2
в соответствии с установленным пользователем соотношением. Я считаю, что для этого мне нужно использовать Combine, но у меня нет большого опыта работы с фреймворком.
Для начала я переместил переменные в класс ObservableObject
:
final class UserData: ObservableObject {
@Published var leftSide = Double()
@Published var rightSide = Double()
@Published var value1 = Double()
@Published var value2 = Double()
}
Я обновил свой основной вид с помощью @ObservedObject var userData = UserData()
, чтобы я мог получить доступ к переменным в моем представлении, и это работает отлично
Теперь я хочу обновить переменные value1 и value2, когда другие изменятся. Из прочитанного мною чтения я думаю, что мне нужно использовать подписчика, но я не могу найти ничего о том, как настроить это с помощью свойства @Published
. Правильно ли я сделал это или есть лучший способ сделать это?