Per settembre 2015, qui è esattamente come si fa un Singleton a Swift:Qualsiasi motivo non utilizzato utilizza una "variabile" singleton in Swift?
public class Model
{
static let shared = Model()
// (for ocd friends ... private init() {})
func test()->Double
{
return 3.33
}
}
poi altrove ...
// file ViewController.swift, say
import UIKit
class ViewController:UIViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
print("view controller loaded!")
print("singleton test! \(Model.shared.test())")
}
}
Nessun problema.
Tuttavia. Aggiungo questa piccola cosa ...
public let model = Model.shared
public class Model
{
static let shared = Model()
func test()->Double
{
return 3.33
}
}
allora, si può semplicemente effettuare le seguenti operazioni progetto di ampio:
class ViewController:UIViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
print("view controller loaded!")
print("singleton test! \(model.test())")
}
}
linguaggio convenzionale:
Model.shared.blah() .. . si vede questo in ogni parte del codice di base
"mio" idioma:
model.blah() ... si vede questo ev erywhere nella base di codice
Quindi, questo si traduce in tutto cercando piuttosto:
(Nel progetto, le "variabili di unico" sarebbe cose come scores.
, networking.
, heuristics.
, o qualunque sia il caso potrebbe essere nel tuo progetto.)
Questo quindi, è un idioma "macro-like".
L'unico scopo è l'aspetto del codice.
Semplificazione degli aspetti di ImportantSystem.SharedImportantSystem
fino a importantSystem.
per tutto il progetto.
Qualcuno può vedere problemi con questo idioma?
I problemi possono essere tecnici, stilistici o di qualsiasi altra categoria, purché siano molto profondi.
dat codestlye! .. – glyuck
Ciao Glyuck. Sono d'accordo con te, è "bitchin". Tuttavia dal momento che (molto sorprendentemente) non lo vedo in alcun punto in un sondaggio della letteratura, dobbiamo considerare eventuali potenziali svantaggi. – Fattie
Sono totalmente confuso. Perché dovresti avere un'istanza globale di un singleton? Un lavoro globale funzionerà, un singleton funzionerà ... WTF è un'istanza globale di un "singleton"? – Grimxn