如何处理异步sendMessage调用?

问题描述 投票:1回答:1

我的应用程序使用sendMessage(message:replyHandler:errorHandler:)与其配套应用程序(iOS或watchOS)进行通信。

我的理解是,在调用这个函数之后,必须等到它完成,即直到调用replyHandlererrorHandler,才能再次调用sendMessage

在我的例子中,sendMessage可以被多个异步事件调用。因此,当正在进行的sendMessage尚未完成时,呼叫必须排队,并且当sendMessage完成时,每个最老的呼叫必须被出队。

我可以想象设置一个存储函数参数(messagereplyHandlererrorHandler)作为属性的类,并定义一个包含元素等对象的fifo队列,这样每次调用replyHandlererrorHandler时,对象都会被出列并执行作为sendMessage

但是,这对我来说似乎有点尴尬。有没有更简单的方法来处理这个问题?

编辑:

也许这样的排队是由WatchKit自动完成的?我在文档中找不到任何内容。

ios sendmessage watch-os watchconnectivity
1个回答
0
投票

我在调用sendMessage(message:replyHandler:errorHandler:)之前运行了几个调用replyHandler的测试,一切正常,即当我停止发送消息时,剩余的replyHandler被调用。 因此,显然sendMessage呼叫在内部排队,而且不必关心它。

© www.soinside.com 2019 - 2024. All rights reserved.