Вы можете сделать синглтон, содержащий коллекцию элементов. Синглтоны, однако, часто считаются плохими, поскольку они могут вызвать больше проблем, чем решают, поэтому, возможно, использование Core Data будет лучшим вариантом.
class Singleton {
static let shared = Singleton()
private init(){}
private let internalQueue = DispatchQueue(label: "com.singletoninternal.queue",
qos: .default,
attributes: .concurrent)
private var _elementCollection: Set<T>
var elementCollection: String {
get {
return internalQueue.sync {
_elementCollection
}
}
set (newState) {
internalQueue.async(flags: .barrier) {
self._elementCollection = newState
}
}
}
func setup(collection: Set<T>) {
_elementCollection = collection
}
}