-3

In my closure method I have to fire delegate method, but the delegate not fired due to weakSelf become nil.

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!)

    }
}   

  }
suby144
  • 61
  • 8

1 Answers1

0

Don't take local variables like weakSelf.

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

Please check let me know if this is working for you?

Animesh
  • 497
  • 5
  • 17