1
使用单我有一个单例类:骑自行车在斯威夫特
class SomeManager {
static let sharedInstance = SomeManager()
let serverService = SomerServerService()
let musicService = SomeMusicService()
}
我尝试使用
class SomeMusicService
{
let serverService = SomeManager.sharedInstance.serverService //here seems I get cycle.
}
我应该用偷懒或其他一些初始化。
正如你可以看到let musicService = SomeMusicService()
初始化一个对象,然后在同一个对象SomeMusicService
它试图调用SomeManager
单身的sharedInstance
在开始获得其他服务。
所以这是一个完整的清单:
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!")
我们永远也不会被调用print("Hello, World!")
线。
酷得到它,似乎在我的情况下单身还没有被初始化,但我尝试在同一时间使用它。我认为只有懒惰的选择,但似乎你是正确的计算属性也没关系。 –
我的意思是懒惰是SomeManager单身已经创建的保证,我们可以使用一些属性。还有一个问题,你认为这是保留周期问题?也许我以错误的方式提问。似乎我开始在另一个服务中使用同一个服务,但我在一个单例中初始化所有服务。 –
我更新了一个列表的问题。无法理解我们从哪里开始骑车,因为我是从Objective-C世界=) –