Wie deklarieren Sie globale Variablen in Swift am besten? Ich verwende Singletons, um Objekte in Erinnerung zu halten. Außerdem kann ich von überall auf sie zugreifen.iOS: Die beste Methode zum Umgang mit globalen Eigenschaften
Aber da Arrays in thread nicht thread-sicher sind, ist dieses Muster auch gegen Nebenläufigkeit gerichtet? Gibt es bessere Möglichkeiten, z.B. Netzwerkressourcen in globalen Eigenschaften?
z.
class Repository {
static let sharedInstance = Repository()
var objects:[String] = []
}
nicht auf die Frage, diese gewundenen Methode ein Singleton zu erklären stammt Swift 1.x, wird aber nicht mehr benötigt. Einfach 'class Repository {static let sharedInstance = Repository()}' ist alles was Sie heutzutage brauchen. – Rob
Re Nebenläufigkeit, nein das ist nicht Thread-sicher. Um dies threadsicher zu machen, würden Sie die 'Objekte' privat machen und dann Ihre eigenen Methoden definieren, um das, was synchronisiert wird (GCD oder Sperren), abzurufen und zu aktualisieren. – Rob
Wenn Sie Thread-Sicherheit für den Zugriff auf Eigenschaften oder Arrays benötigen, empfehle ich Ihnen, eine serielle GCD-Warteschlange zu implementieren, um diesen Zugriff zu steuern. –