我的应用使用sendMessage(message:replyHandler:errorHandler:)
与它的配套应用(iOS或watchOS)进行通信。
我的理解是,调用此函数后,必须等到完成为止,即直到调用replyHandler
或errorHandler
为止,然后才能再次调用sendMessage
。
就我而言,sendMessage
可以被多个异步事件调用。因此,必须在正在进行的sendMessage
尚未完成的同时将呼叫排队,并且sendMessage
完成时每个最旧的呼叫都必须出队。
我可以想象建立一个将函数参数(message
,replyHandler
和errorHandler
)存储为属性的类,并定义一个以元素为对象的fifo队列,因此每次调用replyHandler
或errorHandler
时,一个对象就会出队并以sendMessage
的身份执行。
但是,这对我来说似乎有点尴尬。有没有更简单的方法来解决问题?
编辑:
也许这样的排队是WatchKit自动完成的?我在文档中找不到任何内容。
答案 0 :(得分:0)
在调用sendMessage(message:replyHandler:errorHandler:)
之前,我运行了几个名为replyHandler
的测试,并且一切正常,即,当我停止发送消息时,其余的ReplyHandler被调用了。
因此,显然sendMessage
调用在内部排队,而不必在乎。