Cómo declarar un array de weak references en Swift
¡Hola a todos! Soy nuevo en Swift y estoy tratando de entender la gestión de memoria. Tengo una clase `Delegate` que se usa como delegado para varios objetos. Quiero almacenar una lista de estos delegados en un array, pero no quiero que el array los retenga con una referencia fuerte, de lo contrario habrá fugas de memoria o referencias cíclicas.
En Objective-C usaba `NSPointerArray` con la opción `NSPointerFunctionsWeakMemory`. Pero en Swift no puedo simplemente escribir `weak var delegates: [Delegate]` — el compilador da un error: `'weak' may only be applied to class and class-bound protocol types, not array`.
Aquí hay un ejemplo de mi código:
```swift
class Delegate {
weak var owner: SomeClass?
func didSomething() { }
}
class SomeClass {
// ¿Cómo hacer que este array sea débil?
var delegates: [Delegate] = []
func addDelegate(_ delegate: Delegate) {
delegates.append(delegate)
}
}
```
He leído sobre `NSPointerArray` y `NSHashTable`, pero funcionan con `AnyObject` y parecen incómodos. ¿Hay una forma más