WatchKit中的一个问题是从主应用程序到WatchKit扩展程序之间的通信。发送达尔文通知或使用MMWormhole的一些方法。
可以通过在属性上存储由扩展发送到handleWatchKitExtensionRequest的应答块来完成吗?类似于:
@property (atomic,copy) void (^watchKitReply)(NSDictionary *);然后,当应用程序想要向扩展发送一些东西时,它会使用这个现成的块。
如果扩展想要与主应用程序通信,它将发送一个新的回复块,它将存储在属性上。旧的将被使用和丢弃。
如果没有,为什么这不可能?
发布于 2015-04-06 15:18:51
你绝对可以做到的。不过,我还是要小心,不要每次都踩你的watchKitReply属性,创建一种允许多个reply对象的不同方法。
我们在Watch扩展/ iOS应用程序集成中所做的工作是创建一组WatchKitRequest请求。然后将每个应答块转发到执行请求实现的每个WatchKitRequest子类,然后在完成后执行reply块。本质上,我们所做的正是您所建议的,即存储reply块,直到您真正需要调用它。我们只是存储reply块的方式与您建议的略有不同。
这种方法对我们非常有效。希望这能帮助你朝着正确的方向前进。
https://stackoverflow.com/questions/29469503
复制相似问题