В вашем коде нет ничего плохого. Это внутреннее сообщение для Apple, и вы должны сообщить об этом радару.
Есть две подсказки, которые показывают, что это, вероятно , код Apple:
Подчеркивание, ведущее к имени метода, _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
является соглашением, указывающим, что метод является частным / внутренним для класса, в котором он объявлен. (См. Этот комментарий .)
Разумно предположить, что двухбуквенный префикс FBSSceneSnapshotAction
является сокращением для FrontBoard, который, согласно Рене Ритчи из « Списка пожеланий iOS 9: режим гостя», является частью всего семейства программного обеспечения, связанного с запуском приложений:
В iOS 8 Apple реорганизовала своего системного менеджера SpringBoard на несколько более мелких и более сфокусированных компонентов. В дополнение к BackBoard, который уже был выделен для обработки фоновых задач, они добавили Frontboard для задач переднего плана. Они также добавили PreBoard для обработки экрана блокировки в безопасных, зашифрованных условиях. [...]
Я понятия не имею, для чего предназначен BS
префикс in BSSettings
, но анализ этого сообщения журнала показал бы, что это не то, что вы сделали, и вы должны подать радар с шагами для воспроизведения сообщения регистрации.
Если вы хотите попытаться получить трассировку стека, вы можете реализовать категорию, на которую вы ссылаетесь . Некоторые утверждают, что переопределение частного API - плохая идея, но в этом случае временная инъекция для захвата трассировки стека не может быть слишком вредной.
РЕДАКТИРОВАТЬ:
Но мы все еще хотим знать, что это за действие. Поэтому я установил точку останова, -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
начал распечатывать значения регистров и нашел класс с именем, FBSceneImpl
который содержал всю информацию о моем приложении:
Мы можем выяснить, какой закрытый метод вызывается следующим (хранится в счетчике программы, регистр 15.)
Я попытался найти необработанные FBSceneSnapshotAction
ссылки в журнале, но без кубиков. Затем я подклассифицировал UIApplication и переопределил _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Теперь я смог попасть на экшен напрямую, но все же мы не знаем, что это такое.
Затем я снова посмотрел на действие FBSceneSnapshotAction. Оказывается, у него есть суперкласс BSAction
.
Затем я написал инструмент, похожий на RuntimeBrowser, и просмотрел все подклассы BSAction. Оказывается, их довольно много:
Два имени метода, которые мы имеем (одно из журнала и одно из счетчика программы на устройствах), указывают, что эти действия используются под капотом для передачи действий по системе.
Некоторые действия, вероятно, отправляются обратным вызовам делегата приложения, в то время как другие обрабатываются внутренне.
Здесь происходит то, что есть действие, которое не было обработано правильно, и система замечает это. Видимо, мы не должны были это видеть.