С оговоркой, что «глобалов и синглетонов следует избегать», звучит так, будто они хорошо подходят для того, что вы пытаетесь сделать. Когда вы почувствуете себя лучше в Какао, вы можете перейти к более изощренным способам достижения этого (внедрение зависимости). Подумайте об этом, когда вам станет комфортнее с Какао.
Создайте простой тип синглтона:
// AppState.swift
class AppState {
// Basic singleton setup:
static let shared = AppState()
private init() {} // private prevents instantiating it elsewhere
// Shared state:
var carrierArray: [String] = []
}
Доступ к нему из ваших контроллеров представления:
// YourViewController.swift:
@IBAction func doSomething(_ sender: Any) {
AppState.shared.carrierArray = ...
}
Если вам нужно обновить другие контроллеры представления при изменении этого общего состояния, уведомления являются хорошим инструментом для этого. Вы можете сделать это с didSet
на carrierArray
или просто вызвать уведомление вручную.