watchkit sendmessage errorHandler没有调用

时间:2018-01-08 03:26:35

标签: swift watchkit sendmessage wcsession

我正试图从手表发送消息到手机。如果未连接电话,则稍后发送消息。但是,在实际手表上进行测试时,似乎没有调用错误处理程序。我的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
}

1 个答案:

答案 0 :(得分:0)

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

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