【问题标题】:Multiple nodes in .scn model causing iMessage extension to crash.scn 模型中的多个节点导致 iMessage 扩展崩溃
【发布时间】:2019-02-21 19:29:06
【问题描述】:

我在 iMessage 扩展中使用 SceneKit 并遇到了一个特殊的小问题。我正在尝试使用混合形状锚将自定义 scn 模型和装备节点呈现给用户面部表情。我能够在这个 iMessage 扩展程序诞生的 iOS 应用程序中成功地做到这一点,没有任何问题。但是,一旦放入 MessageViewController 中,每次我尝试运行它时,程序都会以代码 0 退出。

我做了一些挖掘,似乎“以代码 0 退出”表示内存过载,所以我开始使用我的模型节点。我发现,如果我删除除一个以外的所有节点,我可以使用相应的混合形状为该节点设置动画。任何一个以上的节点,它都会崩溃。

有没有人知道为什么会发生这种情况?或者任何证明 iMessage 扩展程序在被杀死之前只被授予一定数量的处理能力(我的另一个理论)?

感谢任何帮助!

【问题讨论】:

    标签: ios iphone swift scenekit arkit


    【解决方案1】:

    App Extension Programming Guide 我们了解到

    运行应用扩展的内存限制明显低于前台应用的内存限制。在这两个平台上,系统都可能会主动终止扩展程序,因为用户希望返回到宿主应用程序中的主要目标。 某些扩展程序的内存限制可能比其他扩展程序低:例如,小部件必须特别高效,因为用户很可能同时打开多个小部件。

    您的应用扩展程序不拥有主运行循环,因此您必须遵循已建立的规则以在主运行循环中保持良好行为。例如,如果您的扩展程序阻塞了主运行循环,它可能会在另一个扩展程序或应用程序中造成糟糕的用户体验。

    请记住,GPU 是系统中的共享资源。应用扩展没有获得共享资源的重中之重;例如,运行图形密集型游戏的 Today 小部件可能会给用户带来糟糕的体验。由于内存压力,系统可能会终止此类扩展。 大量使用系统资源的功能适用于应用程序,而不是应用程序扩展程序。

    【讨论】:

      【解决方案2】:

      一种选择可能是尝试优化 DCC 中的几何结构,以免遇到系统资源限制。

      【讨论】:

        猜你喜欢
        • 2017-01-26
        • 2013-11-03
        • 1970-01-01
        • 2019-05-01
        • 2019-04-04
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 2012-08-07
        相关资源
        最近更新 更多