Non c'è niente di sbagliato nel tuo codice. Questo è un messaggio di registrazione interno ad Apple e dovresti presentare un radar al riguardo.
Ci sono due suggerimenti che mostrano che questo è probabilmente il codice di Apple:
Il carattere di sottolineatura che porta il nome del metodo _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
è una convenzione che indica che il metodo è privato / interno alla classe in cui è dichiarato. (Vedi questo commento ).
È ragionevole supporre che il prefisso di due lettere FBSSceneSnapshotAction
sia una scorciatoia per FrontBoard, che secondo Rene Ritchie in " Wish-list iOS 9: Modalità ospite" fa parte di tutta la famiglia di software relativi all'avvio di app:
Con iOS 8, Apple ha modificato il proprio gestore di sistema, SpringBoard, in diversi componenti più piccoli e più mirati. Oltre a BackBoard, che era già stato rimosso 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 a cosa BS
serva il prefisso BSSettings
, ma un'analisi di questo messaggio di registro indicherebbe che non è qualcosa che hai fatto e che dovresti presentare un radar con i passaggi per riprodurre il messaggio di registrazione.
Se vuoi provare a prendere una traccia dello stack, puoi implementare la categoria collegata qui . Alcuni sosterrebbero che ignorare l'API privata sia una cattiva idea, ma in questo caso un'iniezione temporanea per catturare una traccia dello stack non può essere troppo dannosa.
MODIFICARE:
Ma vogliamo ancora sapere cos'è 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 aveva un sacco di informazioni sulla mia applicazione:
Siamo in grado di scoprire quale metodo privato verrà chiamato successivamente (memorizzato nel contatore del programma, registro 15.)
Ho provato a trovare il FBSceneSnapshotAction
riferimento non gestito nel registro, ma nessun dado. Quindi, ho eseguito la sottoclasse di UIApplication e ho superato _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Ora sono stato in grado di entrare direttamente in azione, ma ancora non sappiamo cosa sia.
Quindi, ho esaminato di nuovo FBSceneSnapshotAction. Si scopre che ha una superclasse chiamata BSAction
.
Quindi ho scritto uno strumento simile a RuntimeBrowser e ho cercato tutte le sottoclassi di BSAction. Si scopre che c'è un bel elenco di loro:
I due nomi dei metodi che abbiamo (uno dal registro e uno dal contatore dei programmi sui dispositivi) indicano che queste azioni vengono utilizzate sotto il cofano per passare 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 che il sistema sta notando. Apparentemente non dovevamo vederlo.