Basta un semplice esempio su come smaltire l'istanza corrente di un Singleton:
import UIKit
class AnyTestClass
{
struct Static
{
private static var instance: AnyTestClass?
}
class var sharedInstance: AnyTestClass
{
if Static.instance == nil
{
Static.instance = AnyTestClass()
}
return Static.instance!
}
func dispose()
{
AnyTestClass.Static.instance = nil
print("Disposed Singleton instance")
}
func saySomething()
{
print("Hi")
}
}
// basic usage
AnyTestClass.sharedInstance.saySomething()
AnyTestClass.sharedInstance.dispose()
Spero che possa essere d'aiuto.
Cosa intendi con "distruggi"? La memoria viene automaticamente gestita da ARC (Automatic Reference Counting). Non è necessario tenere traccia della memoria utilizzata dalle variabili e non è necessario rilasciare manualmente la memoria che utilizzano. – Arc676
@ Arc676, non proprio. Questo è un metodo statico, ARC non lo ucciderà mai. Devi forzarlo per ricostruire. – Brduca
se è necessario distruggere esplicitamente l'istanza e assegnarne una nuova, basta cambiare 'let' a' var' e implementare un metodo che assegna un altro MyManager() ad esso, e l'istanza precedente verrà raccolta dalla modifica di ARC – cezheng