Latest web development tutorials

processo distruttore Swift

Prima di un'istanza di una classe viene rilasciato, il distruttore viene chiamato immediatamente. Usa parole chiave deinit per segnare il distruttore, utilizzano simile funzione di inizializzazione init per segnare. Distruttori si applica solo ai tipi di classe.


Principio processo Destructor

Swift rilascerà automaticamente l'istanza non è più necessaria per liberare risorse.

Swift da Automatic Reference Counting (ARC) gestisce i casi di gestione della memoria.

Di solito quando non è necessario manualmente esempio viene rilasciata da pulire. Tuttavia, quando si utilizzano le proprie risorse, potrebbe essere necessario fare un po 'di pulizia in più.

Ad esempio, se si crea una classe personalizzata per aprire un file e scrivere alcuni dati, potrebbe essere necessario per essere rilasciato prima che l'istanza della classe per chiudere il file.

grammatica

Nella definizione della classe, ogni classe può avere al massimo un distruttore. Distruttore senza parametri, senza parentesi nel testo:

deinit {
    // 执行析构过程
}

Esempi

var counter = 0;  // 引用计数器
class BaseClass {
    init() {
        counter++;
    }
    deinit {
        counter--;
    }
}

var show: BaseClass? = BaseClass()
print(counter)
show = nil
print(counter)

L'output sopra l'esecuzione del programma è il seguente:

1
0

Quando viene eseguito lo spettacolo = dichiarazione pari a zero, la calcolatrice meno 1, mostrano la memoria verrà liberata.

var counter = 0;  // 引用计数器

class BaseClass {
    init() {
        counter++;
    }
    
    deinit {
        counter--;
    }
}

var show: BaseClass? = BaseClass()

print(counter)
print(counter)

L'output sopra l'esecuzione del programma è il seguente:

1
1