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

ParseLiveQuery-iOS-OSX received data but unable to trigger event handler in SwiftUI

提问人:Jack LIU 提问时间:4/30/2023 更新时间:4/30/2023 访问量:32

问:

我正在使用 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)TPFObjectPFObject

任何帮助都是值得赞赏的

swift swiftui 平台 ios-sdk 解析实时查询

评论


答: 暂无答案