Я пытаюсь вызвать одну функцию в классе ViewController, которая была написана в классе модели представления. Но, к сожалению, эта функция не вызывается. Я не понимаю, где я ошибся. Если кто-нибудь мне поможет, было бы здорово. Спасибо!
//ViewController Class
import UIKit
class getDetailsViewController: UIViewController {
var getviewmodel: getDetaisViewModel?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func getDetailsAction(_ sender: Any) {
getviewmodel?.getdetailscall()
}
}
//ViewModel Class
import Foundation
import Alamofire
import SwiftyJSON
class getDetaisViewModel{
var url: URL!
func getdetailscall(){
let headers:HTTPHeaders = ["Authorization":"application/json"]
print(headers)
url = URL(string: Constants.apiForGetDetails)
print(url)
let vc = getDetailsViewController.init(nibName: "getDetailsViewController", bundle: nil)
getWebService.requestService(url: url, method: .post, headers: headers, showLoaderFlag: true, viewController: vc, completion: { response in
guard response["code"].int != 503 else {
print("No internet connection")
return
}
guard response != .null else {
return
}
})
}
}
вы внедрили экземпляр viewModel в свой контроллер представления?
Потому что вы не инициализировали объект getviewmodel
Изменять
var getviewmodel: getDetaisViewModel?
к
var getviewmodel = getDetaisViewModel()
Или инициализируйте getviewmodel
объект в viewDidLoad
методе
override func viewDidLoad() {
super.viewDidLoad()
self.getviewmodel = getDetaisViewModel()
}
Измените название вашего класса на GetDetaisViewModel
Поскольку вы не инициализировали объект getviewmodel