我正试图从手表发送消息到手机。如果未连接电话,则稍后发送消息。但是,在实际手表上进行测试时,似乎没有调用错误处理程序。我的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
}
答案 0 :(得分:0)
当相应的事件发生时,处理程序被异步调用。另一方面,在调用sendMessage方法之后,该函数将立即返回。因此,您的函数将始终返回true。
您需要在错误处理程序中实现新消息的调度,或者如果已经在其他地方安排了定期后台任务,请将sentFlag实现为您的类属性,而不是本地变量。