Sto cercando di capire un metodo per evitare i cicli di conservazione quando alcuni riferimenti nel ciclo sono tenuti in raccolte. La mia idea era quella di creare un wrapper struct
:Forza un parametro di tipo generico come tipo di classe?
struct Weak<T> {
unowned let value: T
init(_ value: T) {
self.value = value
}
}
Il problema qui è che unowned
e weak
membri devono essere di un tipo di classe (main.swift:3:17: 'unowned' cannot be applied to non-class type 'T'; consider adding a class bound
), ma non c'è superclasse ragionevole per me, per richiedere che T
ereditare da.
Esiste un modo per forzare T
in un tipo di classe senza ereditare da un'altra classe specifica?
che ha funzionato, grazie! Questo è ovunque nella documentazione? –
Sì, leggi la sezione sui generici per la sintassi della definizione generica. Effettua una ricerca nell'iBook su AnyObject per ulteriori informazioni su tale protocollo. –