Как исправить «Поток 1: EXC_BAD_ACCESS (code = 2, address = 0x7ffee86aafd8)» в SwiftUI - PullRequest
1 голос
/ 20 января 2020

Когда я использую NavigationLink до go назад, отображается сообщение об ошибке выше. Что означает это сообщение об ошибке? Я не могу найти ни одной статьи по этому вопросу. Когда произошел сбой, я перехожу к классу @UIApplicationMain AppDelegate: UIResponder, UIApplicationDelegate и показываю эти слова: «Поток 1: EXC_BAD_ACCESS (code = 2, address = 0x7ffee86aafd8)». Из-за того, что я просто перехожу к простому представлению и все еще сбой при нажатии назад. Хорошо использовать tabView для другого представления. Я думаю, что это вопрос навигационной ссылки. Демонстрация: https://youtu.be/g8-t0m-0xkU

После того, как я поместил весь свой код кнопки извлечения в SelectPlayerView, он может работать очень хорошо. Так что я думаю, что есть какая-то проблема с моей goToSelectStartingLineupButton ...

struct SelectPlayerView: View {
    @EnvironmentObject var teamResult : TeamResult
    @ObservedObject var allPlayerList : PlayersGameData = PlayersGameData()

    //
    var body: some View {

            goToSelectStartingLineupButton(allPlayerList: allPlayerList)

        }.onAppear(perform: getTeamMemberResults)
            .onDisappear(perform: clearTeamMemberResults)

    }

    struct goToSelectStartingLineupButton: View {
    @ObservedObject var allPlayerList : PlayersGameData
    @EnvironmentObject var teamResult: TeamResult
    @State var goToNextPage : Bool = false

    var selectedPlayerList : PlayersGameData = PlayersGameData()

    var body: some View {

        VStack (spacing: 10){

            Button(action: {
                self.goToNextPage.toggle()
                  for i in 0 ..< self.allPlayerList.playersGameDataArray.count{
                      if(self.allPlayerList.playersGameDataArray[i].isPlayer){

        self.selectedPlayerList.playersGameDataArray.append(self.allPlayerList.playersGameDataArray[i])

                      }

                  }
            }){
                Image(systemName: "arrowshape.turn.up.right.circle"

                Text("\(self.teamResult.groupID) name:\(self.teamResult.groupName)")

            }
            NavigationLink(destination: SelectStartingLineupView(selectedPlayerList: 
      self.selectedPlayerList).environmentObject(teamResult),isActive: $goToNextPage){
                EmptyView()
            }


            }.animation(.spring())
    }

}

Класс, к которому я хочу перейти, находится ниже

struct SelectStartingLineupView: View {
@ObservedObject var selectedPlayerList : PlayersGameData
var body: some View {

        VStack {
            List(selectedPlayerList.playersGameDataArray){
                (player) in
                SelectPlayerCellView(player: player)

                }


        }
}
}

сообщение об ошибке:

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x6000021ea0d0 'assistantView.bottom' TUISystemInputAssistantView:0x7f865370ed40.bottom == _UIKBCompatInputView:0x7f865341fa90.top   (active)>
...