小编jpe*_*ayo的帖子

SIGABRT:前提条件失败:导入的节点在读取其值之前已删除

由于beta 5Xcode 11推出,我不得不更新代码。你知道该怎么做。但是,这种怪异的运行时错误仍在更改中幸免,我无法弄清为什么会发生。

我开始尝试将其纳入原始代码中,但是令人惊讶的是,它也发生在我设法提出的最简单的测试项目中:一个带有表的TabView。

在运行时更改为另一个选项卡时,使Xs模拟器崩溃并导致SIGABRT的过程是错误的:

“ xxxxxxx [23089:4642999]前提条件失败:导入的节点在读取其值之前已删除:90”

如果用户连续单击进入detailview,它不会崩溃;只需运行该应用程序,然后按第二个选项卡即可。

我已经修改了视图建筑物,对象……什么也没有。将行视图更改为简单的文本时,它甚至崩溃。我还删除了@Binding等,以排除Combine。

请让我知道你们中是否有人看到东西。它只会在Beta 5中崩溃,而不会在Beta 2中崩溃。

//  This file can be used in a new TabView app in Xcode 11 beta 5
//  ContentView.swift


import SwiftUI


class TestObject : Identifiable, Hashable{

    let identifier: String


    init() {
        self.identifier = UUID().description
    }

    static func == (lhs: TestObject, rhs: TestObject) -> Bool {
        return lhs.identifier == rhs.identifier
    }

    func hash(into hasher: inout Hasher) {
        hasher.combine(identifier)
    }

}

struct RowView: View {
    let …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

12
推荐指数
1
解决办法
814
查看次数

SwiftUI应用程序的NavigationView中的onAppear和onDisappear是否表现正常?

我想知道在SwiftUI(我撰写本文时为Xcode 11 beta 6)中onAppear和Disappear的行为是开发人员会发现更有用的东西,还是仅仅是一个问题而不是功能。

现在,如果我们使用级联导航,就像您在我附加的示例代码中发现的那样(在Xcode 11b6中编译并运行良好),则来回导航的用户的控制台输出只会在出现以下情况时触发onAppear:向前的新视图加载(意味着更深入)。

在导航中:根-> NestedView1-> NestedView2-> NestedView3,在向每个视图阶段添加调试助手时,

  .onAppear(perform: {print("onAppear level N")})
  .onDisappear(perform: {print("onDisappear level N")})
Run Code Online (Sandbox Code Playgroud)

调试控制台将显示

onAppear root level 0
onAppear level 1
onAppear level 2
onAppear level 3

(没有onDisappear触发)

但是返回根<-NestedView1 <-NestedView2 <-NestedView3

调试控制台将不显示任何内容

(没有onAppear或onDisappear触发)

struct NestedViewLevel3: View {

    @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>

    var body: some View {
        VStack {
            Spacer()
            Text("Level 3")
            Spacer()
            Button(action: {
                self.presentationMode.wrappedValue.dismiss()
            }) {
                Text("Back")
                    .padding(.horizontal, 15)
                    .padding(.vertical, 2)
                    .foregroundColor(Color.white)
                    .clipped(antialiased: true)
                    .background(
                        RoundedRectangle(cornerRadius: 20)
                            .foregroundColor(Color.blue)
                            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, …
Run Code Online (Sandbox Code Playgroud)

swift swiftui ios-navigationview

7
推荐指数
2
解决办法
846
查看次数

标签 统计

swift ×2

swiftui ×2

ios ×1

ios-navigationview ×1