Привет , я пытаюсь улучшить свои навыки развития и столкнулся с некоторыми трудностями.Я читал о Observers в Swift на SwiftBySundell.com и теперь хочу улучшить приложение, над которым я сейчас работаю.
Приложение простое: вы нажимаете кнопку, и отметка времени сохраняется в базе данных CoreData.
Итак, я получил вид с кнопкой и моделью с некоторыми функциями.На мой взгляд, при нажатии кнопки состояние моей модели (TimeMachine) должно изменяться, скажем, с .idle на .started.
Ниже я добавил некоторый код о том, как я могу достичь этих двух наблюдателей.
Теперь, в то время как Сунделл объясняет, что мне нужно сделать, чтобы реализовать Observers (примерно 4 различными способами), мне, кажется, не хватает некоторого понимания того, что на самом деле происходит.
Особенно, когда я хочусоздайте новый вид, который также создаст экземпляр TimeMachine.(Разве это не способ сделать это? Должен ли я передать объект в представление вместо создания нового?)
Подводя итог моему вопросу: Как лучше всего получить aобщее состояние моего TimeMachine через мои взгляды?И даже при наличии наблюдателей, они работают только над одним и тем же экземпляром класса?
Редактировать: Я знаю, что такое объект и что два экземпляра различны.Однако будет ли возможность создать статическую переменную, например?Я просто пытаюсь выяснить, как правильно поступить.
Действительно ли я должен пройти по ТМ, каждый раз, когда переходу к следующему виду?
import Foundation
class TimeMachine {
var state = State.idle {
didSet { stateDidChange() }
}
func stateDidChange() {
print("The State is now \(state)")
}
enum State{
case idle
case started
case paused
}
}
let tM = TimeMachine()
let tM2 = TimeMachine()
tM.state = .idle
//The State is now idle
tM.state = .started
//The State is now started
print("tM2 State is: \(tM2.state)")
//tM2 State is: idle