Я хочу создать пользовательский фреймворк для универсального запроса API с использованием URLSession.Поэтому я использовал эту ссылку.Я буду использовать этот проект в качестве пользовательской основы.Поэтому, чтобы использовать это, я изменил его спецификатор доступа на open
. И используя эту ссылку, я импортировал ее в свой проект.И я сделал следующий код для вызова пост-запроса
import iOSCoreFramework
func callBySpeedyNetworking2() {
let trylogin = login(username: "****", password: "***")
SpeedyNetworking.removeToken()
SpeedyNetworking.postUrl(url: URL(string: GlobalConstants.loginFullURL), model: trylogin) { (response) in
if !response.success {
// show a network error
print("network error ",response.error)
return
}
// successful
print("RESPONSE 1 ------------> ")
dump(response.result(model: ModelResponse.self))
dump(response.jsonResults(model: ModelResponse.self))
}
}
Но он дает мне ошибку для «success», «error» и в следующих строках:
dump(response.result(model: ModelResponse.self))
dump(response.jsonResults(model: ModelResponse.self))
Fromразличные ссылки Я внес изменения в класс SpeedyResponse
с помощью следующего
public class SpeedyResponse {
public var success : Bool!
public var statusCode = 0
public var error: Error?
public var data: Data?
public init (success : Bool, statusCode : Int,error : Error, data : Data){
self.success = success
self.statusCode = statusCode
self.error = error
self.data = data
}
public init(data: Data?, response: URLResponse?, error: Error?) {
self.error = error
self.data = data
if let httpResponse = response as? HTTPURLResponse {
statusCode = httpResponse.statusCode
}
success = statusCode == 200 && error == nil && data != nil ? true : false
}
public func jsonResults<T>(model: T.Type) -> T? {
if !success { return nil }
guard let responseData = data else { return nil }
do {
return try JSONSerialization.jsonObject(with: responseData) as? T
} catch {
return nil
}
}
public func result<T: Decodable>(model: T.Type) -> T? {
if !success { return nil }
guard let responseData = data else { return nil }
do {
return try JSONDecoder().decode(model, from: responseData)
} catch {
return nil
}
}
}
Но все же это не было исправлено.