Ich entschied mich, mit Schließungen zu gehen, wenn ein Wert einer Eigenschaft in meiner Klasse, aber dieser Wert hängt von einem Singleton-Wert (Benutzername protokolliert).Eigenschaft Schließung kann meine Singleton freigegebenen Eigenschaften nicht sehen
class BrokerTVC: NSViewController, DBTable {
@IBOutlet weak var table: NSTableView!
var mainRequest = {() -> String in
switch LoggedUser.shared.type{
case LoggedUser.shared.admin:
return "select * from broker where approved = true"
case LoggedUser.shared.client:
return "select * from broker where approved = true and ..."
default: return ""
}
return ""
}}
class LoggedUser{
var type: Roles?
var iD: String
var username: String
static let shared = LoggedUser()
private init(){
type = .admin
iD = "(xx, xxxxxx)"
username = "root"
}}
Irgendwie dieser Verschluss erkennt nicht die shared
Eigenschaft dieses Singleton (Wert vom Typ „LoggedUser“ muss nicht „admin“). Verpasse ich einige Kernprinzipien, wie Schließungen funktionieren?
Der Grund war, weil Singleton Eigenschaft 'Baumuster zur einer optionalen Art war, so hatte ich es in einem' Schalter' Aussage –
Nun auszupacken, das eine andere Sache ist :) ich meine Antwort aktualisiert –