Изменить значение переменной ios swift
Подскажите пожалуйста, почему print будет 0?
Функция load_shop() вызывается другой функцией. Короче говоря, если есть обновление, вызывается функция load_shop, которая должна изменить переменную обновления. Затем мне нужно вывести значение переменной обновления. Я новичок в этом.
class CheckUpdate: NSObject {
var first_class = ViewController()
func name() {
if (...) {
self.first_class.self.load_shop();
}
}
}
class ViewController: UIViewController {
var update = 0
func load_shop() {
self.update = 1
}
func print_variable() {
print("update: \(update)")
}
}
Ответы (1 шт):
Автор решения: Denis Shchigolev
→ Ссылка
У тебя главная проблема в том, что ты написал метод name() в классе CheckUpdate, но нигде не инициализировал экземпляр этого класса и не вызвал этот метод, тем самым у тебя метод name(), loadShop() и printVarible() не срабатывают
import UIKit
class CheckUpdate: NSObject {
let firstClass = ViewController()
let isNeedUpdate = true
func name() {
if isNeedUpdate {
firstClass.loadShop()
firstClass.printVariable()
}
}
}
class ViewController: UIViewController {
//инициализируем обьект класса CheckUpdate
let check = CheckUpdate()
override func viewDidLoad() {
super.viewDidLoad()
//вызываем метод name() класса CheckUpdate
check.name()
}
var update = 0
func loadShop() {
update = 1
}
func printVariable() {
print("update: \(update)")
}
}