По своему небольшому опыту я заметил, что при создании двух или более интерфейсных контроллеров (IC) для приложения WatchKit AppleWatch начинает загружать следующий интерфейс до того, как пользователь перейдет к нему. Это может быть полезно для производительности системы, но тогда меня что-то смущает. Как я понял, у каждой IC должна быть своя собственная WCSession для связи с сопряженным iPhone, но я начинаю думать, что это неправда, потому что при отладке я увидел, что если, например, первая IC использует sendMessage для отправки запроса, ответ будет получено didReceiveMessage второго IC, а не первого IC. Я еще не пробовал, но, возможно, мне следует создать WCSession только в первом IC, а также, если я нахожусь на другом IC, приложение запускает его в didReceiveMessage первого. Если это правильно, как я могу что-то сделать во втором IC, когда приходит сообщение? В WatchKit я не думаю, что смогу использовать Observers. Может кто-нибудь разъяснить мне это, пожалуйста?
Проведя еще несколько поисков в Интернете, я нашел это: http://www.sneakycrab.com/blog/2015/5/26/wkinterfacecontroller-lifecycle-in-watchos-101 Это подтверждение предварительной загрузки IC, которая остается такой же и в WatchOS 2. .