1谜诫、block
self.dataBack = { [weak self] (result) in?
self?.dataArr = result as! [String]
? ?}
? ? block 通過 [weak self] 將self的強引用改為弱引用
2、delegate
一般聲明delegate 屬性的時候,用weak修飾。tableView的delegate實現(xiàn)也是如此
weak open var delegate: UITableViewDelegate?
1)自定義代理協(xié)議的時候揖曾,應繼承NSObjectProtocol军俊,這時使用weak不會報錯多矮。
因為'weak' must not be applied to non-class-bound 'CustomViewDelegate'; consider adding a protocol conformance that has a class bound?
得修飾一個有類綁定的協(xié)議
2)@objc?
? ? 聲明代理協(xié)議的時候氯析,如果前面有@objc關(guān)鍵字的話, 也可以用weak修飾delegate屬性