弱自我在闭包方法上迅速使用时变为零



在我的闭包方法中,我必须触发委托方法,但由于弱而未触发的委托自身变为零。

import Foundation
protocol LoginViewModelDelegate: class {
func didCompleted(_ obj: LoginViewModel)
}
class LoginViewModel {
weak var delegate: LoginViewModelDelegate?
var schoolName: String
init() {
    schoolName = ""
}
func getSchoolNameFrom(schoolId: String) {
    weak var weakSelf = self
    LoginNetworkController.getSchoolName(schoolId) {[weak self] (result, status, message) in
         weakSelf?.schoolName = "Text"
         weakSelf?.delegate?.didCompleted(weakSelf!)
    }
}   
  }

不要像 weakSelf 那样采用局部变量。

LoginNetworkController.getSchoolName(schoolId) {[weak self] (result, status, message) in
    self?.schoolName = "Text"
    self?.delegate?.delegateMethoed(self!)
}

请检查让我知道这是否适合您?

最新更新