【问题标题】:Crash on Canvas SwiftUICanvas SwiftUI 崩溃
【发布时间】:2019-11-08 11:12:38
【问题描述】:

我正在使用新的 iOS 框架 SwiftUI 实现一个小应用程序。我正在使用@EnvironmentObject 将我的数据绑定到视图。一切正常,但 Canvas 崩溃并没有显示任何内容。为什么?

struct CompetitionsListSwiftUIView : View {

    @EnvironmentObject var competitionsViewModel: CompetitionsViewModel

    var body: some View {
        List(self.competitionsViewModel.competitions.identified(by: \.id)) { competition in
                CompetitionCellSwiftUIView(competition: competition)
            }
    }
}

#if DEBUG
struct CompetitionsListSwiftUIView_Previews : PreviewProvider {
    static var previews: some View {
        CompetitionsListSwiftUIView()
    }
}
#endif

Canvas 的错误信息是这样的:

Error Domain=render service Code=12 "Rendering service was interrupted" UserInfo={NSLocalizedDescription=Rendering service was interrupted}

【问题讨论】:

    标签: ios swift swiftui combine


    【解决方案1】:

    尝试将您的环境对象添加到预览中:

    #if DEBUG
    struct CompetitionsListSwiftUIView_Previews : PreviewProvider {
        static var previews: some View {
            CompetitionsListSwiftUIView()
              .environmentObject(CompetitionsViewModel())
        }
    }
    #endif
    

    【讨论】:

    • 拯救了我的一天。编译器不显示任何相关错误。在预览的情况下错误报告不好
    • Xcode 团队应该添加更多调试信息,说明 Preview Canvas 崩溃的原因。
    • 喜欢 XCode 年度最具描述性的错误消息。节省了我几个小时的混乱。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    相关资源
    最近更新 更多