WatchKit
中的一個問題是從主應用程序到WatchKit
擴展的通信。一些通過發送達爾文通知或與MMWormhole
做的方法。如何通過存儲「回覆」塊來在iOS應用程序和WatchKit擴展之間進行通信?
是否有可能通過將擴展程序發送給handleWatchKitExtensionRequest
的回覆塊存儲在屬性上來執行此操作?例如:
@property (atomic,copy) void (^watchKitReply)(NSDictionary *);
然後,當應用程序想要將某些內容發送到擴展程序時,它會使用此易於使用的塊。
如果擴展想要與主應用進行通信,它將發送一個新的應答塊,該應答塊將存儲在該屬性上。舊的將被使用並丟棄。
如果沒有,爲什麼這是不可能的?
我會對這方面的更多細節非常感興趣。在我的測試中,有一個掛起的回覆塊阻止了進一步的通信。 – SarahR 2015-04-07 04:27:55
我仍在測試,但似乎您需要使用它們生成的相同順序使用回覆塊。如果你使用的是更新的版本,它會一直等待直到舊版本發佈。 – 2015-04-07 10:01:59
這非常有趣。我從來沒有注意到,這是發生在我建立我的系統的方式。我沒有通過答覆傳遞信息,而是通過MMWormhole。這使我能夠監視數據更改並在單個工作流程中解析這些更改。如果我要在回覆塊中返回請求數據,那麼我將不得不解析那裏的數據,以及我正在監視MMWormhole通知的位置。它使得在單一地點處理所有事情變得更容易。缺點是我沒有注意到訂單的重要性。 – cnoon 2015-04-07 14:43:45