Мой код:
Код: Выделить всё
class Weak {
weak var value: T?
init (_ value: T) {
self.value = value
}
}
protocol LocationSendingDelegate : AnyObject {
func sendLocation(_ location: CLLocation)
}
private var locationSendingDelegates : [Weak] = [] // this line gives compiler error
Код: Выделить всё
'Weak' requires that 'any LocationSendingDelegate' be a class type
class WeakLocationDelegate {
weak var value: LocationSendingDelegate?
init(_ value: LocationSendingDelegate) {
self.value = value
}
Тогда это отлично работает:
private var locationSendingDelegates : [WeakLocationDelegate] = []
Как я могу сделать это с помощью дженериков?
РЕДАКТИРОВАТЬ:
Похоже, кто-то еще столкнулся с этой проблемой, но она не была решена:
Общий массив слабых ссылок на класс связанный протокол в Swift 4.1
Подробнее здесь: https://stackoverflow.com/questions/797 ... r-weak-req
Мобильная версия