【发布时间】:2021-04-25 08:17:56
【问题描述】:
我想用 Alamofire 加载一些 data
这是我的课
struct Welcome: Codable {
let count: Int
let next: String
let previous: String
let results: [Übungen]
}
// MARK: - Result
struct Übungen: Codable {
let id, category: Int
let resultDescription, name, nameOriginal: String
let muscles, musclesSecondary, equipment: Int
let creationDate: String
let language: Int
let uuid: String
let variations: Int
接下来是我的协议
protocol ÜbungenGateway {
func fetch(completion: @escaping (Result<[Übungen], Error>) -> Void)
}
最后一部分是 Alamofireclass
class ÜbungenAlamofireGateway : ÜbungenGateway {
let url = "https://wger.de/api/v2/"
func fetch(completion: @escaping (Result<[Übungen], Error>) -> Void) {
AF.request(url)
.validate()
.responseJSON {
switch $0.result{
case .success:
do {
let decoder = JSONDecoder()
let excercise = try! decoder.decode(Übungen.self, from: $0.data!)
completion(.success(excercise.name))
}catch {
completion(.failure(error))
}
case .failure(let error):
completion(.failure(error))
}
}
}
}
我的问题是我收到以下错误:
"Cannot convert value of type 'String' to expected argument type '[Übungen]'"
排队
completion(.success(excercise.name))
我不知道为什么。
希望有人能帮帮我。
【问题讨论】: