รหัสของคุณไม่มีอะไรผิดปกติ นี่คือข้อความบันทึกภายในของ Apple และคุณควรแจ้งเรดาร์เกี่ยวกับเรื่องนี้
มีสองคำใบ้ที่แสดงว่านี่อาจเป็นรหัสของ Apple:
ขีดล่างที่นำหน้าชื่อเมธอด_handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
คือข้อตกลงที่ระบุว่าเมธอดนั้นเป็นแบบส่วนตัว / ภายในสำหรับคลาสที่มีการประกาศ (ดูความคิดเห็นนี้)
เป็นเรื่องสมเหตุสมผลที่จะเดาว่าคำนำหน้าตัวอักษรสองตัวในFBSSceneSnapshotAction
FrontBoard ซึ่งอ้างอิงจาก Rene Ritchie ใน " รายการสิ่งที่ปรารถนา iOS 9: โหมดผู้เยี่ยมชม"เป็นส่วนหนึ่งของกลุ่มซอฟต์แวร์ทั้งหมดที่เกี่ยวข้องกับการเปิดตัวแอป:
ด้วย iOS 8 Apple ปรับโครงสร้าง SpringBoard ตัวจัดการระบบให้เป็นส่วนประกอบที่เล็กลงและเน้นมากขึ้น นอกจาก BackBoard ซึ่งถูกแยกออกไปเพื่อจัดการงานเบื้องหลังแล้วพวกเขายังเพิ่ม Frontboard สำหรับงานเบื้องหน้า พวกเขายังเพิ่ม PreBoard เพื่อจัดการกับหน้าจอล็อคภายใต้เงื่อนไขที่ปลอดภัยและเข้ารหัส [... ]
ฉันไม่รู้ว่าBS
คำนำหน้าBSSettings
มีไว้เพื่ออะไร แต่
BS
เป็นชวเลขBackBoard Settings
และการวิเคราะห์ข้อความบันทึกนี้จะระบุว่าไม่ใช่สิ่งที่คุณทำและคุณควรส่งเรดาร์พร้อมขั้นตอนในการสร้างข้อความบันทึกซ้ำ
หากคุณต้องการลองใช้สแต็กแทร็กคุณสามารถใช้งานได้ หมวดหมู่ที่เชื่อมโยงกับที่นี่ บางคนอาจโต้แย้งว่าการลบล้าง API ส่วนตัวเป็นความคิดที่ไม่ดี แต่ในกรณีนี้การฉีดชั่วคราวเพื่อดึงสแต็กแทร็กจะไม่เป็นอันตรายเกินไป
แก้ไข:
แต่เรายังอยากรู้ว่าการกระทำนี้คืออะไร ดังนั้นฉันจึงใส่เบรกพอยต์-[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
และเริ่มพิมพ์ค่ารีจิสเตอร์และพบคลาสที่เรียกว่าFBSceneImpl
ซึ่งมีข้อมูลมากมายเกี่ยวกับแอปพลิเคชันของฉัน:
เราสามารถค้นหาว่าวิธีการส่วนตัวใดที่เรียกว่าต่อไป (เก็บไว้ในตัวนับโปรแกรมตัวชี้คำสั่งลงทะเบียน 15. )
ฉันพยายามค้นหาสิ่งที่ไม่ได้จัดการ FBSceneSnapshotAction
อ้างถึงในบันทึก แต่ไม่มีลูกเต๋า แล้วฉัน subclassed UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
และสถานภาพ ตอนนี้ฉันสามารถดำเนินการได้โดยตรง แต่ถึงกระนั้นเราก็ไม่รู้ว่ามันคืออะไร
จากนั้นฉันมองไปที่ FBSceneSnapshotAction อีกครั้ง ปรากฎว่ามีซูเปอร์คลาสที่เรียกว่าBSAction
ที่เรียกว่า
จากนั้นฉันก็เขียนเครื่องมือที่คล้ายกับRuntimeBrowserและค้นหาคลาสย่อยทั้งหมดของ BSAction ปรากฎว่ามีรายชื่อค่อนข้างมาก:
ชื่อเมธอดสองชื่อที่เรามี (หนึ่งชื่อจากบันทึกและอีกชื่อหนึ่งจากตัวนับโปรแกรมบนอุปกรณ์) ระบุว่ามีการใช้การดำเนินการเหล่านี้ภายใต้ประทุนเพื่อส่งผ่านการกระทำรอบ ๆ ระบบ
การดำเนินการบางอย่างอาจถูกส่งไปยังการเรียกกลับของตัวแทนแอปในขณะที่การดำเนินการอื่น ๆ จะได้รับการจัดการภายใน
สิ่งที่เกิดขึ้นที่นี่คือมีการดำเนินการที่ไม่ได้รับการจัดการอย่างถูกต้องและระบบสังเกตเห็น เห็นได้ชัดว่าเราไม่ควรเห็น