if let vendorId = vendor?.id {
APIManager.shared.getProducts(vendorId: vendorId, completionHandler: { (json) in
if json != nil { <<<<<<<<<Comparing non-optional value of type 'JSON' to 'nil' always returns true
self.products = []
if let tempProducts = json["products"].array {
for item in tempProducts {
let product = Product(json: item)
self.products.append(product)
}
self.tableView.reloadData()
Helpers.hideActivityIndicator(self.activityIndicator)
}
}
})
}
}
In My APIManager.swift
import Foundation
import Alamofire
import SwiftyJSON
import FBSDKLoginKit
class APIManager {
static let shared = APIManager()
let baseURL = NSURL(string: BASE_URL)
var accessToken = ""
var refreshToken = ""
var expired = Date()
// Запрос функции сервера
func requestServer(method: Alamofire.HTTPMethod , path: String, params: [String: AnyObject]?, encoding: ParameterEncoding, completionHandler: @escaping (JSON?) -> Void ) {
let url = baseURL?.appendingPathComponent(path)
refreshTokenIfNeed {
AF.request(url!, method: method, parameters: params, encoding: encoding, headers: nil).responseJSON{ response in
switch response.result {
case .success(let value):
let jsonData = JSON(value)
completionHandler(jsonData)
break
case .failure:
completionHandler(nil)
break
}
}
}
}
// API - Получение последнего заказа (Заказчик)
func getLatestOrder(completionHandler: @escaping (JSON) -> Void) {
let path = "api/customer/order/latest/"
let params: [String: Any] = [
"access_token": self.accessToken
]
requestServer(method: .get, path: path, params: params as [String : AnyObject], encoding: URLEncoding()) { (json) in
print(json!)
}
}
}