Я экспериментирую с внедрением центра уведомлений в Swift
Для данного typealias (я не хочу менять это)
typealias Observer = (_ name: String, _ data: Any) -> Void
Вы можете иметь массив этого:
var observers = [Observer]()
Но тогда как я могу удалить любое имя наблюдателя?
Если у меня есть наблюдатель "myObs"
for i in 0..<observers.count {
if observers[i].name == "myObs" {
observers.remove(at: i)
return
}
}
не удалит элемент, поскольку у любого наблюдателя нет имени свойства.
Я хотел использовать протокол, соответствующий AnyObject, но тогда мне нужно будет сохранить имя в протоколе, а также его имя в typealias.
У меня есть фундаментальное недоразумение ... но что это?