Avatar ·

Wie deklariert man ein Array von schwachen Referenzen (weak references) in Swift?

Hallo zusammen! Ich bin neu in Swift und versuche, die Speicherverwaltung zu verstehen. Ich habe eine Klasse `Delegate`, die als Delegate für mehrere Objekte verwendet wird. Ich möchte eine Liste dieser Delegates in einem Array speichern, aber ich möchte nicht, dass das Array sie stark referenziert, sonst entstehen Speicherlecks oder zyklische Referenzen. In Objective-C habe ich `NSPointerArray` mit der Option `NSPointerFunctionsWeakMemory` verwendet. Aber in Swift kann ich nicht einfach `weak var delegates: [Delegate]` schreiben – der Compiler gibt einen Fehler aus: `'weak' may only be applied to class and class-bound protocol types, not array`. Hier ist ein Beispiel meines Codes: ```swift class Delegate { weak var owner: SomeClass? func didSomething() { } } class SomeClass { // Wie mache ich dieses Array schwach? var delegates: [Delegate] = [] func addDelegate(_ delegate: Delegate) { delegates.append(delegate) } } ``` Ich habe über `NSPointerArray` und `NSHashTable` gelesen, aber sie arbeiten mit `AnyObject` und scheinen nicht...