提问人:Jack LIU 提问时间:4/30/2023 更新时间:4/30/2023 访问量:32
ParseLiveQuery-iOS-OSX 收到数据,但无法在 SwiftUI 中触发事件处理程序
ParseLiveQuery-iOS-OSX received data but unable to trigger event handler in SwiftUI
问:
我正在使用 ParseLiveQuery-iOS-OSX 库从 SwiftUI 项目中的 Parse Server 接收实时服务器更新。我密切关注了网上的各种消息来源。下面是我当前的视图模型:
class InitializationViewModel: ObservableObject{
var subscription: Subscription<PFObject>?
var subscriber = Client(server: "ws://xx.xx.xx.xx", applicationId: "xxxx", clientKey: "]")
let query : PFQuery<PFObject> = Chats.query()!.whereKey("users", contains: "user1")
init(){
self.subscribeToChats()
}
func subscribeToChats() {
self.subscriber.shouldPrintWebSocketLog = false
self.subscriber.shouldPrintWebSocketTrace = true
self.subscription = subscriber.subscribe(query).handle(Event.created) { query, object in
print(object)
}
}
}
自从我打开了客户端跟踪以来,我能够看到来自服务器的传入 json 实时查询对象,因此该部分正常工作。但是,我是事件处理程序,只是不会被触发。
我做了一些进一步的调查,发现错误出现在ParseLiveQuery/ClientPrivate.swift的第23行,
guard let object = PFDecoder.object().decode(objectDictionary) as? T else {
throw LiveQueryErrors.InvalidJSONObject(json: objectDictionary, details: "cannot decode json into \(T.self)")
}
解码部分 () 工作正常。但是当它尝试将解码的对象转换为类型时会出现错误,这是我的情况中的类型(此处为类型 def)。我检查了解码的对象确实包含 .所以我有点纠结为什么会发生这种情况/是否有办法解决这个问题。PFDecoder.object().decode(objectDictionary)
T
PFObject
PFObject
任何帮助都是值得赞赏的
答: 暂无答案
评论