No hay nada de malo en tu código. Este es un mensaje de registro interno de Apple, y debe presentar un radar al respecto.
Hay dos pistas que muestran que probablemente este sea el código de Apple:
El guión bajo que encabeza el nombre del método _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
es una convención que indica que el método es privado / interno a la clase en la que está declarado (consulte este comentario ).
Es razonable suponer que el prefijo de dos letras FBSSceneSnapshotAction
es una abreviatura de FrontBoard, que según Rene Ritchie en " Lista de deseos de iOS 9: Modo invitado" es parte de toda la familia de software relacionada con el lanzamiento de aplicaciones:
Con iOS 8, Apple refactorizó su administrador de sistema, SpringBoard, en varios componentes más pequeños y enfocados. Además de BackBoard, que ya se separó para manejar tareas en segundo plano, agregaron Frontboard para tareas en primer plano. También agregaron PreBoard para manejar la pantalla de bloqueo en condiciones seguras y cifradas. [...]
No tengo idea de para qué es el BS
prefijo BSSettings
, pero
BS
es una abreviatura de BackBoard Settings
, y un análisis de este mensaje de registro indicaría que no es nada de lo que hizo, y debe presentar un radar con los pasos para reproducir el mensaje de registro.
Si desea intentar obtener un seguimiento de la pila, puede implementar la categoría vinculada aquí . Algunos argumentarían que anular la API privada es una mala idea, pero en este caso una inyección temporal para obtener un seguimiento de la pila no puede ser demasiado dañina.
EDITAR:
Pero, todavía queremos saber qué es esta acción. Así que puse un punto de interrupción -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
y comencé a imprimir valores de registro y encontré una clase llamada FBSceneImpl
que tenía un montón de información sobre mi aplicación:
Podemos averiguar qué método privado se llama a continuación (almacenado en el contador de programa, puntero de instrucción, registro 15).
Intenté encontrar la FBSceneSnapshotAction
referencia no manejada en el registro, pero no dados. Luego, subclasé UIApplication y anulé _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Ahora pude llegar a la acción directamente, pero aún así, no sabemos qué es.
Luego, volví a mirar FBSceneSnapshotAction. Resulta que tiene una superclase llamada BSAction
.
Luego escribí una herramienta similar a RuntimeBrowser y busqué todas las subclases de BSAction. Resulta que hay una buena lista de ellos:
Los dos nombres de métodos que tenemos (uno del registro y otro del contador del programa en los dispositivos) indican que estas acciones se utilizan bajo el capó para pasar acciones por el sistema.
Algunas acciones probablemente se envían a las devoluciones de llamada del delegado de la aplicación, mientras que otras se manejan internamente.
Lo que está sucediendo aquí es que hay una acción que no se manejó correctamente y el sistema lo está notando. Al parecer, no se suponía que lo viéramos.