我试图将信息从手表发送到手机。如果未连接电话,请稍后发送信息。但是,在实际手表上进行测试时,似乎未调用错误处理程序。我的sendFlag不是假的。

func sendMessageToPhone(paraMessage: Dictionary<String, Any>) -> Bool
{
    var sentFlag : Bool

    sentFlag = true

    session.sendMessage(paraMessage, replyHandler: nil,
                        errorHandler: { (_ error: Error) -> Void in
        sentFlag =  false

    })

    return sentFlag
}

最佳答案

当相应事件发生时,将异步调用处理程序。另一方面,该函数将在调用sendMessage方法后立即返回。因此,您的函数将始终返回true。

您要么需要在错误处理程序中实现对新消息的调度,或者如果已经在其他地方调度了周期性的后台任务,则将sendFlag实现为您的类属性,而不是局部变量。

09-12 05:16