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

时间:2015-06-07 05:45:48

标签: ios objective-c uiimage watchkit apple-watch

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

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

问题:
它的性能非常糟糕。 Watch应用程序错过了帧,因此动画非常糟糕。根本原因可能是WatchKit扩展程序的文件读取操作,或者数据从扩展程序无线转移到监视应用程序。

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

  1. 从iOS应用程序读取数据到WatchKit扩展名吗?
  2. 在观看应用中显示动态图像?

1 个答案:

答案 0 :(得分:0)

您遇到了糟糕的性能,因为运行周期永远不会完美,并且同步调用并不完美对齐。

解决这个问题的正确方法不是像你一样动态生成图像,而是在你需要之前生成图像。

您可以在Xcode中生成这些图像并将它们包含在您的WatchKit应用程序包中(如果它们是您将要使用的一般内容),您可以在WatchKit应用程序启动时生成它们(如果您知道你是什么的) “我需要,以后你会需要它们”,或者你可以在实际需要之前稍微生成它们。

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