Czasami pojawia się ten komunikat w dziennikach Xcode 8b3 podczas uruchamiania mojej aplikacji, wszystko wydaje się działać, ale chciałbym wiedzieć, skąd to pochodzi. Google wcale nie pomógł.
willShowViewController
nigdy się nie nazywa, nie ...
Czasami pojawia się ten komunikat w dziennikach Xcode 8b3 podczas uruchamiania mojej aplikacji, wszystko wydaje się działać, ale chciałbym wiedzieć, skąd to pochodzi. Google wcale nie pomógł.
willShowViewController
nigdy się nie nazywa, nie ...
Odpowiedzi:
w twoim Xcode:
Pochodzi z +[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]
interfejsu API os_log. Nie zależy od innych komponentów / frameworków, których używasz (tylko od UIKit) - odtwarza w projekcie aplikacji z pojedynczym widokiem po zmianie orientacji interfejsu.
Ta metoda składa się z 2 części:
Gdy druga część zawiedzie (wygląda jak zabronione przejście), drukuje powyższy komunikat do dziennika błędów. Myślę jednak, że ten problem nie jest śmiertelny: w tej metodzie są 2 dodatkowe przypadki potwierdzenia, które doprowadzą do awarii podczas debugowania.
Wydaje się, że radar jest najlepszym, co możemy zrobić.
Spróbuj umieścić następujące elementy w environment variables
schemacie dla podrun(debug)
OS_ACTIVITY_MODE = disable
Możemy go wyciszyć w ten sposób (urządzenie i symulator potrzebują różnych wartości):
Dodaj Nazwę OS_ACTIVITY_MODE
i Wartość ${DEBUG_ACTIVITY_MODE}
i sprawdź ją (w Produkcie -> Schemat -> Edytuj Schemat -> Uruchom -> Argumenty -> Środowisko).
Dodaj ustawienie User-Defined DEBUG_ACTIVITY_MODE
, a następnie dodać Any iOS Simulator SDK
do Debug
i ustaw jego wartość disable
(w projekcie -> Ustawienia Build -> + -> Ustawienia definiowane przez użytkownika)
Aby to naprawić, usunąłem aplikację z symulatora.
Najpierw też uruchomiłem Clean .
Nie wydaje mi się, żeby coś takiego spowodowało. Największą rzeczą, która zmieniła się przed rozpoczęciem tego objawu, jest to, że środowisko Swift zaczęło wywoływać NSLog
wątki robocze zamiast głównego.
OS_ACTIVITY_MODE = disable
Spowoduje to również wyłączenie możliwości debugowania na rzeczywistych urządzeniach (odtąd nie będzie danych wyjściowych konsoli rzeczywistych urządzeń).