Đôi khi tôi nhận được thông báo này trong nhật ký của Xcode 8b3 khi chạy ứng dụng của mình, mọi thứ dường như hoạt động, nhưng tôi muốn biết nó đến từ đâu. Google đã không giúp đỡ gì cả.
willShowViewController
không bao giờ được gọi, không ...
Đôi khi tôi nhận được thông báo này trong nhật ký của Xcode 8b3 khi chạy ứng dụng của mình, mọi thứ dường như hoạt động, nhưng tôi muốn biết nó đến từ đâu. Google đã không giúp đỡ gì cả.
willShowViewController
không bao giờ được gọi, không ...
Câu trả lời:
trong Xcode của bạn:
Nó đến từ +[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]
thông qua API os_log. Nó không phụ thuộc vào các thành phần / khung khác mà bạn đang sử dụng (chỉ từ UIKit) - nó tái tạo trong dự án ứng dụng xem đơn sạch về thay đổi hướng giao diện.
Phương pháp này bao gồm từ 2 phần:
Khi phần thứ hai không thành công (trông giống như quá trình chuyển đổi bị cấm), nó sẽ in thông báo ở trên sang nhật ký lỗi. Tuy nhiên, tôi nghĩ rằng vấn đề này không gây tử vong: có thêm 2 trường hợp khẳng định trong phương pháp này, điều đó sẽ dẫn đến sự cố trong gỡ lỗi.
Có vẻ như radar là tốt nhất chúng ta có thể làm.
Hãy thử đặt các mục sau trong environment variables
sơ đồ chorun(debug)
OS_ACTIVITY_MODE = disable
Chúng ta có thể tắt tiếng theo cách này (thiết bị và trình giả lập cần các giá trị khác nhau):
Thêm Tên OS_ACTIVITY_MODE
và Giá trị ${DEBUG_ACTIVITY_MODE}
và kiểm tra nó (trong Sản phẩm -> Lược đồ -> Chỉnh sửa lược đồ -> Chạy -> Đối số -> Môi trường).
Thêm Setting User-Defined DEBUG_ACTIVITY_MODE
, sau đó thêm Any iOS Simulator SDK
cho Debug
và thiết lập giá trị của nó để disable
(trong dự án -> Cài đặt Build -> + -> Setting User-Defined)
Để khắc phục, tôi đã xóa ứng dụng khỏi Trình mô phỏng.
Tôi cũng chạy Clean trước.
Tôi không nghĩ bất cứ điều gì liên quan đến định hướng đã kích hoạt nó. Điều lớn nhất đã thay đổi trước khi triệu chứng này bắt đầu là một khung Swift bắt đầu gọi các NSLog
luồng công nhân thay vì luồng chính.
OS_ACTIVITY_MODE = disable
Điều này cũng sẽ vô hiệu hóa khả năng gỡ lỗi trong các thiết bị thực (không có đầu ra giao diện điều khiển từ các thiết bị thực từ đó trở đi).