【发布时间】:2020-07-06 07:08:55
【问题描述】:
我已通过创建模型成功解析 JSON。但现在我想要一个视图模型,它与视图对话,并且视图在模型更新时更新。但是我很难初始化模型。
我的简化模型如下所示。
PeopleListM.swift
import SwiftUI
import Alamofire
struct PeopleListM: Decodable {
var all: [Person]
enum CodingKeys: String, CodingKey {
case all = "people"
}
struct Person: Decodable {
let name: String
let email: String
let favorite: Bool
let lastSent: String?
enum CodingKeys: String, CodingKey {
case name
case email = "email_id"
case favorite
case lastSent = "last_sent"
}
}
init() {
let headers: HTTPHeaders = ["disableauth" : "true", "Content-Type": "application/json"]
AF.request("MY URL", parameters: nil, headers: headers)
.validate()
.responseDecodable(of: PeopleListM.self) { (response) in
guard let result = response.value else { return }
self.all = result.all
}
}
这段代码给了我错误Escaping closure captures mutating 'self' parameter
我尝试用self = result 更改行self.all = result.all,同样的错误。
我的进一步计划是创建一个符合ObservableObject的类
PeopleListVM.swift
import SwiftUI
class PeopleListVM: ObservableObject {
let people = PeopleListVM.createModel()
static func createModel() {
PeopleListM()
}
}
【问题讨论】:
标签: ios mvvm swiftui alamofire