import Foundation import KeychainAccess enum APIError : Error { case accessTokenExpired case networkError // Add more error cases as needed } class APIManager { private let keychain = Keychain (service: "com.example.app.refreshToken" ) private let refreshTokenKey = "refreshToken" private var accessToken: String ? func callAPI < T : Codable >( urlString : String , method : String , parameters : [ String : Any ] ? , completion : @escaping ( Result < T , APIError >) -> Void ) { guard let url = URL (string: urlString) else { completion(.failure(.networkError)) return } var request = URLRequest (url: url) request.httpMethod = method // Add access token to the request headers if available if let token = accessToken { request.setValue( "Bearer \(token) " , forHTTPHeaderField: "Aut...
Parse JSON Data(GET Method) in UITableViewCell Using JsonDecoder Swift 4 & Xcode 9 1) -- ViewController Class First Create a new Project (ParseDataGETMethod) after make a struct (GetJsonData) type data parameter import UIKit struct GetJsonData: Decodable { let name: String let capital: String let alpha2Code: String let alpha3Code: String let region: String let subregion: String } class ViewController: UIViewController , UITableViewDelegate , UITableViewDataSource { var arrData = [ GetJsonData ]() @IBOutlet var tableView: UITableView ! override func viewDidLoad() { super . viewDidLoad () getJSONData () } func getJSONData(){ let url = URL (string: "...