Оператор If SwiftUI

#ios #swift #if-statement #swiftui

#iOS #swift #оператор if #swiftui

Вопрос:

У меня есть оператор if в моем представлении SwiftUI VStack для переключения целого числа, которое останавливает создание базы данных SQLite более одного раза, но я получаю многочисленные ошибки, останавливающие создание кода. Переменная (appInfo.toggleswitch — это целое число, для которого по умолчанию установлено значение 0 в классе, на который я подписываюсь в этом представлении с использованием объекта среды)

         if appInfo.toggleswitch == 0 {
            let db = DBHelper()
            $appInfo.toggleswitch = 1 }
 

Комментарии:

1. Пожалуйста, поделитесь этими «многочисленными ошибками». Вы пробовали без $ ?

2. В представлении вы работаете только с представлением, т. Е. … в заявлении должно быть представление if , если вам нужны какие-то модельные вычисления, тогда сделайте это в модели.

Ответ №1:

Вы не можете писать подобный код в представлении. SwiftUI отображает только пользовательский интерфейс. Я бы сделал что-то вроде этого:

 Toggle(isOn: $appInfo.toggleswitch.onChange(myFunction)) {
    YourView() 
} 

func myFunction() {
    let db = DBHelper()
    appInfo.toggleswitch = 1
}