ParseLiveQuery-iOS-OSX 收到数据但无法触发SwiftUI 中的事件处理程序

问题描述 投票:0回答:0

我在 SwiftUI 项目中使用 ParseLiveQuery-iOS-OSX 库从我的 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)")
}

解码部分(

PFDecoder.object().decode(objectDictionary)
)工作正常。但是当它试图将解码后的对象转换为类型
T
时出现错误,在我的例子中是类型
PFObject
(类型defhere)。我检查了解码对象确实包含一个
PFObject
的所有必填字段。所以我有点想知道为什么会发生这种情况/是否有办法解决这个问题。

感谢任何帮助

swift swiftui parse-platform parse-ios-sdk parse-live-query
© www.soinside.com 2019 - 2024. All rights reserved.