阅读背景:

swift委托——何时使用弱引用,为什么“委托”是nil?

来源:互联网 

Here is my code:

这是我的代码:

protocol Delegate: NSObjectProtocol {}

class A: NSObject {
    weak var delegate: Delegate!
    override init() {
        super.init()
    }
    func start() {
        //synchronous------- print A: false
        print("A:", delegate == nil)

        //asynchronous------- print B: true  Why is 'true'? How can do that not be released?
        let time: NSTimeInterval = 1
        let delay = dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC)))
        dispatch_after(delay, dispatch_get_main_queue()) {
            print("B:", self.delegate == nil)
        }
    }
}

class B: NSObject, Delegate {
    override init() {
        super.init()
        let a = A()
        a.delegate = self
        a.start()
    }
}
protocol Delegate:



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: