问题背景:
主机iOS应用程序以10 fps的帧速率动态生成UIImage,我只想从WatchKit扩展中检索UIImage数据,并以相同的速率在Watch应用程序上显示图像。
我目前的解决方案:
我为iOS应用和WatchKit扩展设置了一个应用组。 iOS应用程序将每个帧写入png文件(大约10k)到组共享位置,WatchKit扩展使用NSTimer以相同的速率读取文件,然后将数据发布到Watch应用程序。
问题:
它的性能非常糟糕。 Watch应用程序错过了帧,因此动画非常糟糕。根本原因可能是WatchKit扩展程序的文件读取操作,或者数据从扩展程序无线转移到监视应用程序。
有没有人有类似的要求?
是否有更好的解决方案:
答案 0 :(得分:0)
您遇到了糟糕的性能,因为运行周期永远不会完美,并且同步调用并不完美对齐。
解决这个问题的正确方法不是像你一样动态生成图像,而是在你需要之前生成图像。
您可以在Xcode中生成这些图像并将它们包含在您的WatchKit应用程序包中(如果它们是您将要使用的一般内容),您可以在WatchKit应用程序启动时生成它们(如果您知道你是什么的) “我需要,以后你会需要它们”,或者你可以在实际需要之前稍微生成它们。
如果选择后两者中的一个,最佳做法就像您现在正在做的那样,将它们存储在共享的应用程序组中(而不是使用openParentApplication:reply:
)。但是,在同时访问和写入同一组时必须小心。