我遇到了一个奇怪的问题。我可以访问我的类单例实例,但如果我尝试再次访问它,它似乎挂起。下面是代码的简单版本:当使用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