reference cycle 引用循环
发布时间:2020-12-14 02:11:55 所属栏目:百科 来源:网络整理
导读:在swift 里引用循环的造成,主要有两个方法, 1.类之间的引用 2.clourse 闭包引用 解决办法: weak references and unowned references. 也就是weak,unowned weak,来修饰可选的,? 结尾的,如:var weak city: String ? unowned 来修身 一直存在的。 var un
在swift 里引用循环的造成,主要有两个方法, 1.类之间的引用 2.clourse 闭包引用 解决办法: weak references and unowned references. 也就是weak,unowned weak,来修饰可选的,? 结尾的,如:var weak city: String ? unowned 来修身 一直存在的。 var unowned city: String
class Customer { letname: String var card: CreditCard? init(name:String) { self.name = name } deinit { println("(name) is being deinitialized") } } class CreditCard { let number: UInt64 unowned let customer: Customer init(number:UInt64,customer: Customer) { self.number = number self.customer = customer } deinit { println("Card #(number) is being deinitialized") } } 以上 unowned 避免循环引用的例子 lazyvar someClosure: (Int,String) -> String = { [unownedself,weak delegate = self.delegate!] (index:Int,stringToProcess: String) -> String in // closure body goes here }clourse 中避免循环引用的例子
详情请看apple swift 文档 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |