【发布时间】:2021-01-31 19:33:40
【问题描述】:
我开始使用 swift 进行编程,但调用本地服务时遇到问题,例如:
{"idMember":14,"externalID":"001996.dce","email":null,"name":"Manu","isActive":true,"logDate":"2020-12-12 12:12:12","logUser":"asdasd"}
我试过了:
let url = URL(string: "http://localhost:8080/member/findByExternalID/001996.dce")!
let token = URLSession.shared.dataTaskPublisher(for: url)
.map { $0.data }
.decode(type: Member.self, decoder: JSONDecoder())
.sink(receiveCompletion: { completion in
print(completion)
}, receiveValue: { value in
print("service has \(value) value")
})
会员.swift:
struct Member: Codable, Identifiable {
var id = UUID()
let idMember:Int
var name:String
var logDate:Date
var logUser:String
var externalID:String
var email:String
var isActive:Bool
enum CodingKeys: String, CodingKey {
case idMember, name, logDate, logUser, externalID, email, isActive }
}
但从不打印信息,从不调用服务(我在服务器日志中检查它)。我想这是一个微不足道的问题。但我没发现有什么问题。
【问题讨论】:
-
你如何处理可取消的令牌?我看到您将它存储在
token变量中,但之后会发生什么?请注意,如果此令牌被释放,您的数据任务将取消。 -
我什么也不做。我试图简化我的代码来查找问题,我使用断点来观察令牌的值。我是否需要对令牌执行某些操作才能刷新它的值?