首页 > 其他 > 详细

强引用循环

时间:2015-03-24 19:37:47      阅读:248      评论:0      收藏:0      [点我收藏+]

        当2个对象的存储属性互相引用对方的时候,一个对象释放的前提是对方先释放,另一个对象释放的前提也是对方先释放,这样做会导致类似于死锁一样的状态,最后导致双方都无法释放,导致内存泄露,这种现象就是强引用循环。

        class Employee {
                var no:Int
                var name:String
                var job:String
                var salary:Double
                var dept:Department?
                init(no:Int,name:String,job:String,salary:Double){
                    self.no = no
                    self.name = name
                    self.job = job
                    self.salary = salary
}
                    deinit{
                        println("Employee对象已经被析构")
}
}
        class Department {
                        var no:Int
                        var name:String
                         var manager:Employee?
                        init(no:Int,name:String){
                            self.no = no
                            self.name = name
    }
                        deinit{
                            println("Department对象已经被析构")
    }
}


本文出自 “平凡之路” 博客,请务必保留此出处http://linjohn.blog.51cto.com/1026193/1623801

强引用循环

原文:http://linjohn.blog.51cto.com/1026193/1623801

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!