Tableview visibleCells вызывает сбой

override func viewDidDisappear(_ animated: Bool) {
        tableView.visibleCells.forEach {
            if let cell = $0 as? PostsWithVideoCustom , let player = cell.player {
                player.pause()
                cell.player = nil
            }
        }
    }

Я использую этот код на viewDidDisappear, и обычно это нормально.

Однако, если я performSegue на viewWillAppear

override func viewWillAppear(_ animated: Bool) {
        if userDefaults.string(forKey: "goToEvent") != nil {
            performSegue(withIdentifier: "postToEvent", sender: self)
        }
       }

У меня сбой на линии tableView.visibleCells.forEach

Как справиться с этим сбоем и что может его вызвать?

ОБНОВИТЬ

Этот сбой происходит только в том случае, если приложение запущено после того, как оно было убито, не происходит при выходе из фонового режима.

Крушение

Crashed: com.apple.main-thread
0  APP                        0x104521cd4 specialized Posts.viewDidDisappear(_:) (Posts.swift:2127)
1  APP                        0x104519864 @objc Posts.viewWillAppear(_:) + 4334082148
2  UIKitCore                      0x247561684 -[UIViewController _setViewAppearState:isAnimating:] + 488
3  UIKitCore                      0x247562008 -[UIViewController __viewDidDisappear:] + 144
4  UIKitCore                      0x2474c31d8 -[UINavigationController viewDidDisappear:] + 232
5  UIKit                          0x23b4b5ea8 -[UINavigationControllerAccessibility viewDidDisappear:] + 40
6  UIKitCore                      0x247561684 -[UIViewController _setViewAppearState:isAnimating:] + 488
7  UIKitCore                      0x247562008 -[UIViewController __viewDidDisappear:] + 144
8  UIKitCore                      0x247498890 -[UITabBarController viewDidDisappear:] + 100
9  UIKitCore                      0x247561684 -[UIViewController _setViewAppearState:isAnimating:] + 488
10 UIKitCore                      0x247562008 -[UIViewController __viewDidDisappear:] + 144
11 UIKitCore                      0x247564168 __64-[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]_block_invoke.1383 + 44
12 UIKitCore                      0x247562764 -[UIViewController _executeAfterAppearanceBlock] + 88
13 UIKitCore                      0x247b10ef8 _runAfterCACommitDeferredBlocks + 564
14 UIKitCore                      0x247aff93c _cleanUpAfterCAFlushAndRunDeferredBlocks + 352
15 UIKitCore                      0x247b1e5a8 __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 136
16 CoreFoundation                 0x21b29ee68 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20
17 CoreFoundation                 0x21b29e76c __CFRunLoopDoBlocks + 272
18 CoreFoundation                 0x21b2997d0 __CFRunLoopRun + 1024
19 CoreFoundation                 0x21b2990b0 CFRunLoopRunSpecific + 436
20 GraphicsServices               0x21d49979c GSEventRunModal + 104
21 UIKitCore                      0x247b05978 UIApplicationMain + 212
22 APP                        0x1044f8504 main (InboxInterests.swift:22)
23 libdyld.dylib                  0x21ad5e8e0 start + 4

пост полный краш........

Sh_Khan 21.06.2019 15:36

выложил полный краш

Utku Dalmaz 21.06.2019 15:39

уверен, что этот фрагмент является причиной сбоя, что означает, что если вы прокомментировали его, он все равно вылетит или у вас есть другой контент?

Sh_Khan 21.06.2019 15:41

Проверьте, правильно ли подключены розетки tableView.

PGDev 21.06.2019 15:42

@Sh_Khan Я сейчас проверяю это, я обновлю вопрос по результату

Utku Dalmaz 21.06.2019 15:44

Что, если вы добавите вызовы super в начало обеих функций viewWillAppear и viewDidDisappear?

André Slotta 21.06.2019 15:45

@AndréSlotta, ты думаешь, это изменит ситуацию?

Utku Dalmaz 21.06.2019 15:45

Возможно. Стоит попробовать.

André Slotta 21.06.2019 15:45

Этот сбой происходит только в том случае, если приложение запущено после того, как оно было убито, не происходит при выходе из фонового режима.

Utku Dalmaz 21.06.2019 16:07

Какая именно строка вызывает сбой? Какое полное сообщение об ошибке?

rmaddy 21.06.2019 17:15

@Sh_Khan да, если я прокомментирую эту строку, он не вылетит

Utku Dalmaz 21.06.2019 18:58

@rmaddy tableView.visibleCells.forEach эта строка дает сбой, и вы можете найти отчет о сбое в вопросе

Utku Dalmaz 21.06.2019 18:59

Я знаю, что отчет о сбое есть. Я спросил, что за сообщение об ошибке.

rmaddy 21.06.2019 19:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
13
479
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил эту проблему, просто добавив

if tableView != nil {
        }

Это было очень легко исправить. Но я думаю, что iOS должна в первую очередь управлять этим сама.

Другие вопросы по теме