WatchKit扩展:如何从主机iOS应用程序读取数据?

WatchKit扩展:如何从主机iOS应用程序读取数据?,ios,objective-c,uiimage,watchkit,apple-watch,Ios,Objective C,Uiimage,Watchkit,Apple Watch,问题背景: 主机iOS应用程序以10 fps的帧速率动态生成UIImage,我只想从WatchKit扩展中检索UIImage数据,并以相同的速率在Watch应用程序上显示图像 我当前的解决方案: 我为iOS应用程序和WatchKit扩展设置了一个应用程序组。iOS应用程序将每个帧写入一个png文件(约10k)到组共享位置,WatchKit扩展使用NSTimer以相同的速率读取文件,然后将数据发布到Watch应用程序 问题: 它的工作性能非常差。Watch应用程序会丢失帧,因此动画的显示非常糟糕。

问题背景:
主机iOS应用程序以10 fps的帧速率动态生成UIImage,我只想从WatchKit扩展中检索UIImage数据,并以相同的速率在Watch应用程序上显示图像

我当前的解决方案:
我为iOS应用程序和WatchKit扩展设置了一个应用程序组。iOS应用程序将每个帧写入一个png文件(约10k)到组共享位置,WatchKit扩展使用NSTimer以相同的速率读取文件,然后将数据发布到Watch应用程序

问题:
它的工作性能非常差。Watch应用程序会丢失帧,因此动画的显示非常糟糕。根本原因可能是WatchKit扩展名的文件读取操作,或者数据从扩展名无线传输到watch应用程序

有人有类似的要求吗?
是否有更好的解决方案:

  • 从iOS应用程序读取数据到WatchKit扩展
  • 在手表应用程序上显示动态图像

  • 您的性能很差,因为运行周期从来都不是完美的,而且同步的调用也没有完全对齐

    解决这一问题的正确方法不是像您那样动态生成图像,而是在您需要它们之前生成图像

    您可以在Xcode中生成这些图像,并将它们包含在WatchKit应用程序的捆绑包中(如果它们是通用的,您将经常使用),您可以在WatchKit应用程序启动时生成它们(如果您知道您需要什么,并且以后需要它们),或者您可以在实际需要它们之前稍微生成它们

    如果选择后两种方法中的一种,最佳做法就像您现在所做的那样,将它们存储在共享应用程序组中(而不是使用
    openParentApplication:reply:
    )。但是,在同时访问和写入同一组时必须小心