调试仅在真实设备上失败的 iPad 应用程序?

问题描述 投票:0回答:1

我有一个 SwiftUI 应用程序在 XCode 和 iPadOS 17 模拟器中完美运行。当我在真正的 iPad 上运行它时,它运行良好,直到我点击特定的列表行(这意味着打开编辑面板)。然后应用程序就会冻结。它不会发布任何警告或崩溃。如果我暂停它,它会打开到?汇编代码而不是我自己的代码中的一行,如果我运行一行,它会显示我正在查看的任何代码页。我正在寻求有关如何调试此问题的建议? 关于如何继续,有什么想法吗?

我查看了多个 Apple、Stack Overflow 和其他 SwiftUI 资源,但找不到类似的问题。我什至不知道在哪里放置打印语句来查看循环可能是什么。 我显然犯了一些错误,但不知道如何追查它。这个应用程序花了一年多的时间来创建,这是第一次出现。

xcode debugging swiftui ipados13
1个回答
0
投票

对于经历过这种情况的其他人。但它有点迟钝,我怀疑苹果的疏忽。 我查看了类似的有效代码。共同点是单击列表项,导致触发 NavigationLink(destination:)。工作版本中的目标是特定的 View 实例化。失败目标中的调用是一个调用基础对象函数“destinationView(object:)”的函数。这返回了一个 AnyView,因为覆盖此函数的不同子类对象返回了不同的视图(并且我无法确定如何覆盖返回“某些视图”的函数)。 AnyView 混淆了 SwiftUI 的 NavigationLink,以某种方式导致无限循环。 通过替换目标函数以专门返回特定视图(根据使用带有“as?ObjectType”的多个 if 语句的每种类型的对象的情况),问题得到解决。 寓意:应尽可能避免使用 AnyView(正如 Apple 建议的那样!)。 希望对其他人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.