Swift Inexplicable EXC_BREAKPOINT crash

voix
1

considérez le code suivant:

@objc public func endAllSessionsWithReason(_ reason: Reason, completion completionBlock: (() -> Void)?) {
    let allActiveSessions = self.activeSessions.map({$0.value})

    for session in allActiveSessions {
        if (reason != .undetermined) {
            session.reason = reason
        }

        self.endSession(session, deleteSession: false)
    }

    let allActiveSessionIds = allActiveSessions.map({$0.sessionId})
    self.deleteSessionsWithIds(sessionIds: allActiveSessionIds, completion: completionBlock)
}

Crashlytics rapporte l'accident suivant dans ce code:

Crashed: com.apple.main-thread
EXC_BREAKPOINT 0x0000000103032788
SessionController.swift line 183
specialized SessionController.endAllSessionsWithReason(_:completion:)

où la ligne 183 se réfère à:

let allActiveSessionIds = allActiveSessions.map({$0.sessionId})

J'ai essayé de déterminer ce qui pourrait causer cet accident pendant quelques jours maintenant, et n'ont pas été en mesure de le reproduire. Je ne vois pas ou implicite unwraps optionals, mais sessionIdest une valeur non facultative dans l'objet de session si cela importe.

self.activeSessions est une valeur non-option aussi, mais peut être vide.

J'utilise rapide 4.1, et les accidents se produisent sur les appareils iOS fonctionnant sous toutes les différentes saveurs d'iOS 10, 11 et 12. L'application prend en charge certains builds d'iOS 9, mais aucun n'a été rapporté (bien que cela puisse être pertinent parce que la base d'utilisateurs iOS 9 pour l'application est extrêmement faible).

Créé 20/10/2018 à 02:36
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more