Мое приложение связывается с сопутствующим приложением (iOS или watchOS), используя sendMessage(message:replyHandler:errorHandler:)
.
Насколько я понимаю, после вызова этой функции нужно ждать, пока она не будет завершена, то есть до тех пор, пока не будет вызван replyHandler
или errorHandler
, прежде чем sendMessage
можно будет вызвать снова.
В моем случае sendMessage
может быть вызвано несколькими асинхронными событиями.Таким образом, вызовы должны быть поставлены в очередь, в то время как текущий sendMessage
еще не завершен, и каждый из старейших вызовов должен быть отменен после завершения sendMessage
.
Я могу представить себе создать класс, хранящий параметры функции (message
, replyHandler
и errorHandler
) в качестве свойств, и определить очередь fifo с такими объектами в качестве элементов, чтобы каждый разreplyHandler
или errorHandler
вызывается, объект снимается с производства и выполняется как sendMessage
.
Однако, это кажется мне немного неловким.Есть ли более простой способ решения проблемы?
РЕДАКТИРОВАТЬ:
Может быть, такие очереди создаются автоматически с помощью WatchKit?Я ничего не могу найти в документах.