บางครั้งฉันได้รับข้อความนี้ในบันทึกของ Xcode 8b3 เมื่อเรียกใช้แอปของฉันดูเหมือนว่าทุกอย่างจะทำงาน แต่ฉันต้องการทราบว่าสิ่งนี้มาจากไหน Google ไม่ได้ช่วยอะไรเลย
willShowViewController
ไม่เคยเรียกว่าไม่มี ...
บางครั้งฉันได้รับข้อความนี้ในบันทึกของ Xcode 8b3 เมื่อเรียกใช้แอปของฉันดูเหมือนว่าทุกอย่างจะทำงาน แต่ฉันต้องการทราบว่าสิ่งนี้มาจากไหน Google ไม่ได้ช่วยอะไรเลย
willShowViewController
ไม่เคยเรียกว่าไม่มี ...
คำตอบ:
ใน Xcode ของคุณ:
มันมาจาก+[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]
ผ่าน os_log API ไม่ได้ขึ้นอยู่กับส่วนประกอบ / กรอบงานอื่นที่คุณใช้ (เฉพาะจาก UIKit) - มันทำซ้ำในโครงการแอพพลิเคชั่นมุมมองเดียวที่สะอาดเกี่ยวกับการเปลี่ยนการวางแนวอินเตอร์เฟส
วิธีนี้ประกอบด้วย 2 ส่วนคือ
เมื่อส่วนที่สองล้มเหลว (ดูเหมือนว่าการเปลี่ยนแปลงที่ไม่ได้รับอนุญาต) จะพิมพ์ข้อความด้านบนเพื่อบันทึกข้อผิดพลาด อย่างไรก็ตามฉันคิดว่าปัญหานี้ไม่ร้ายแรง: มี 2 กรณียืนยันเพิ่มเติมในวิธีนี้ซึ่งจะนำไปสู่ความผิดพลาดในการแก้ปัญหา
ดูเหมือนว่าเรดาร์นั้นดีที่สุดที่เราสามารถทำได้
ลองวางสิ่งต่อไปนี้ลงในenvironment variables
สำหรับโครงร่างใต้run(debug)
OS_ACTIVITY_MODE = disable
เราสามารถปิดเสียงด้วยวิธีนี้ (อุปกรณ์และเครื่องมือจำลองต้องการค่าที่แตกต่าง):
เพิ่มชื่อOS_ACTIVITY_MODE
และค่า${DEBUG_ACTIVITY_MODE}
และตรวจสอบ (ในผลิตภัณฑ์ -> โครงการ -> แก้ไขโครงการ -> เรียกใช้ -> อาร์กิวเมนต์ -> สภาพแวดล้อม)
เพิ่มการตั้งค่าผู้ใช้กำหนดDEBUG_ACTIVITY_MODE
แล้วเพิ่มAny iOS Simulator SDK
สำหรับDebug
และตั้งค่าของมันไปdisable
(ในโครงการ -> การตั้งค่ารูปร่าง -> + -> การตั้งค่าผู้ใช้กำหนด)
ในการแก้ไขฉันลบแอพออกจาก Simulator
ฉันก็วิ่งคลีนก่อน
ฉันไม่คิดว่าสิ่งใดที่เกี่ยวข้องกับการวางแนวเรียกมัน สิ่งที่ยิ่งใหญ่ที่สุดที่เปลี่ยนไปก่อนที่อาการนี้จะเริ่มต้นคือกรอบงาน Swift เริ่มเรียกNSLog
เธรดผู้ปฏิบัติงานแทนเธรดหลัก
OS_ACTIVITY_MODE = disable
สิ่งนี้จะปิดใช้งานความสามารถในการตรวจแก้จุดบกพร่องในอุปกรณ์จริง (ไม่มีคอนโซลเอาต์พุตจากอุปกรณ์จริงตั้งแต่นั้นมา)