Ich habe eine Singleton-Klasse:Radfahren mit Singletons in Swift
class SomeManager {
static let sharedInstance = SomeManager()
let serverService = SomerServerService()
let musicService = SomeMusicService()
}
Ich versuche
class SomeMusicService
{
let serverService = SomeManager.sharedInstance.serverService //here seems I get cycle.
}
verwenden Sollte ich faul oder eine andere Initialisierung.
Wie Sie let musicService = SomeMusicService()
initialisiert ein Objekt und dann in dem gleichen Objekt sehen SomeMusicService
es versucht sharedInstance
von SomeManager
Singleton nennen einem anderen Dienst beim Start zu bekommen.
Das ist also eine vollständige Liste:
import Foundation
class ServerService
{
func downloadMusic()
{
print("Download music and play it after that.")
}
}
class MusicService
{
let serverService = Singleton.shared.serverService
func playMusic()
{
serverService.downloadMusic()
}
}
class Singleton
{
static let shared = Singleton()
let serverService = ServerService()
let musicService = MusicService()
}
let s = Singleton.shared
print("Hello, World!")
Wir nie print("Hello, World!")
Zeile aufgerufen werden lassen.
cool habe es, scheint in meinem Fall Singleton noch nicht initialisiert wurde, aber ich versuche, es in der gleichen Zeit zu verwenden. Ich vermutete, dass es nur eine faule Option gibt, aber es scheint, als ob die rechnerische Eigenschaft auch in Ordnung ist. –
Ich meine, dass faul ist garantiert, dass SomeManager Singleton bereits erstellt wurde und wir einige Eigenschaften verwenden können. Und noch eine Frage, denken Sie, dies ist ein Problem mit dem Retain-Zyklus? Vielleicht habe ich falsch gefragt. scheint, als ob ich benutze das gleiche Singleton von einem Dienst in einem anderen, aber ich initialisiere alle Dienste in einem Singleton. –
Ich habe eine Frage mit einem Eintrag aktualisiert. Kann nicht verstehen, wo wir Radfahren, wie ich von Objective-C Welt bin =) –