Да, вы можете использовать ObservableObject
, даже если вы не используете SwiftUI. Имейте в виду, что использование этого требует минимум iOS 13.
Но если вы не собираетесь использовать ObservableObject
в контексте SwiftUI, убедитесь, что вы понимаете, как это работает. ObservableObject
отправляет обновления до того, как будет установлено свойство, содержащее обновленное значение. Это связано с тем, что объект публикует с использованием издателя objectWillChange
. Я указываю на это, потому что если вы используете sink
на опубликованном значении в качестве механизма уведомления ваших VC о том, что новое значение доступно, и они go для получения значения путем прямой ссылки на опубликованное свойство, они все равно получат старое значение, и вы не увидите, что ваши экраны обновляются новыми данными.
При использовании ObservableObject
в SwiftUI вам, как правило, не нужно беспокоиться об издателе objectWillChange
, поскольку представления SwiftUI автоматически обновляются всякий раз, когда издатель стреляет. Поскольку обычные контроллеры представления по умолчанию не знают, как обновляться при запуске этих издателей, важно понимать, как реализовать свои обновления при использовании ObservableObject
в качестве модели данных.