0

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

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
}
4

1 回答 1

0

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

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

于 2018-01-08T07:13:10.297 回答