class Arctest { let name: String = "Arctest" @lazy var ret:() -> String? = { [weak self] in return self!.name } @lazy var ret2:() -> String = { [unowned self] in return self.name } deinit{ println("deinit") } func outest(){ println("outtest") } } class Com { unowned var arctest: Arctest init(arctest: Arctest){ self.arctest = arctest } } var i: Arctest? = Arctest() var c: Com = Com(arctest: i!) i!.ret()
// ret2 增加了计数,无法释放,不知道怎么回事? var s: String? = i!.ret2() println(s) s=nil i = nil
难道有问题?