Вы можете создать singleton
для поддержки всех ваших API calls
как:
class APIManager {
static let shared = APIManager()
private init() {}
func fetchData(with urlString: String, handler: ((Model?, Error?)->())?) {
//Add other params as per your requirement...
if let url = URL(string: urlString) {
URLSession.shared.dataTask(with: url) { (data, response, error) in
//parse your data here...
handler?(model, error) //model is the object you got after parsing the data..
}.resume()
}
}
}
В вашем ViewController
вы можете использовать его как:
class VC: UIViewController {
func fetchData() {
APIManager.shared.fetchData(with: "YOUR_URL_STRING") { (model, error) in
//Use model here...
}
}
}
В приведенном выше коде я взял пример URLSession
для вызова API.Вы можете использовать другие способы, такие как третьи стороны (Alamofire
и т. Д.) Согласно вашему требованию.