Non c'è niente di sbagliato nel tuo codice. Questo è un messaggio di registrazione interno ad Apple e dovresti presentare un radar a riguardo.
Ci sono due indizi che mostrano che questo è probabilmente il codice di Apple:
Il carattere di sottolineatura che precede il nome del metodo _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
è una convenzione che indica che il metodo è privato / interno alla classe in cui è dichiarato (vedere questo commento ).
È ragionevole supporre che il prefisso di due lettere FBSSceneSnapshotAction
sia l'abbreviazione di FrontBoard, che secondo Rene Ritchie in " Lista dei desideri di iOS 9: modalità ospite" fa parte dell'intera famiglia di software relativi all'avvio di app:
Con iOS 8, Apple ha modificato il suo gestore di sistema, SpringBoard, in diversi componenti più piccoli e più mirati. Oltre a BackBoard, che era già stato scorporato per gestire le attività in background, hanno aggiunto Frontboard per le attività in primo piano. Hanno anche aggiunto PreBoard per gestire la schermata di blocco in condizioni sicure e crittografate. [...]
Non ho idea di cosa sia il BS
prefisso in BSSettings
, ma
BS
è una scorciatoia per BackBoard Settings
, e un'analisi di questo messaggio di log indicherebbe che non è niente che hai fatto, e dovresti presentare un radar con i passaggi per riprodurre il messaggio di log.
Se vuoi provare a prendere una traccia dello stack, puoi implementare la categoria collegata qui . Alcuni sostengono che l'override dell'API privata sia una cattiva idea, ma in questo caso un'iniezione temporanea per acquisire una traccia dello stack non può essere troppo dannosa.
MODIFICARE:
Ma vogliamo ancora sapere qual è questa azione. Quindi ho inserito un punto di interruzione -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
e ho iniziato a stampare i valori di registro e ho trovato una classe chiamata FBSceneImpl
che conteneva un sacco di informazioni sulla mia applicazione:
Siamo in grado di scoprire quale metodo privato viene chiamato successivamente (memorizzato nel contatore del programma, puntatore dell'istruzione, registro 15.)
Ho provato a trovare il FBSceneSnapshotAction
riferimento non gestito nel registro, ma nessun dado. Quindi, ho sottoclassato UIApplication e ho sovrascritto _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Ora sono stato in grado di entrare direttamente in azione, ma ancora non sappiamo cosa sia.
Quindi, ho guardato di nuovo FBSceneSnapshotAction. Si scopre che ha una superclasse chiamata BSAction
.
Poi ho scritto uno strumento simile a RuntimeBrowser e ho cercato tutte le sottoclassi di BSAction. Si scopre che ce n'è un bel elenco:
I due nomi di metodo che abbiamo (uno dal registro e uno dal contatore del programma sui dispositivi) indicano che queste azioni vengono utilizzate sotto il cofano per passare le azioni nel sistema.
Alcune azioni vengono probabilmente inviate ai callback del delegato dell'app, mentre altre vengono gestite internamente.
Quello che sta succedendo qui è che c'è un'azione che non è stata gestita correttamente e il sistema la sta rilevando. A quanto pare non avremmo dovuto vederlo.