我遇到了一個奇怪的問題。我可以訪問我的類單例實例,但如果我嘗試再次訪問它,它似乎掛起。下面是代碼的簡單版本:當使用Swift訪問類單例時使用semaphore_wait_trap
private let _SharedInstance = MyManager()
class MyManager: NSObject {
class var sharedInstance: MyManager {
return _SharedInstance
}
override init() {
super.init()
println("init")
println(self.accessToken())
println(MyManager)
println("test 1")
println(MyManager.sharedInstance)
println("test 2")
}
}
在這種情況下,它是從自身的init
中調用它,但它在其他地方發生。
代碼永遠不會到test 2
。只要它訪問MyManager.sharedInstance
它掛起。沒有錯誤或警告。
如果我暫停調試器,我可以看到它目前有上semaphore_wait_trap
圖片(差類名):
重新啓動的Xcode或計算機並沒有幫助。
它是死鎖。 – 2014-11-24 00:11:33