[iOS 13]: ข้อยกเว้นร้ายแรง: NSInvalidArgumentException ไม่สามารถเพิ่มตัวเองเป็นมุมมองย่อย ([NSCache init])


9

ฉันเห็นปัญหา / คำถามที่คล้ายกันใน Stack Overflow แต่ไม่ได้ช่วยอะไร

ฉันสร้างแอพด้วย Xcode 11 และ iOS 13 SDK ปัญหาคือฉันได้รับข้อขัดข้องทั้งหมดใน iOS 13+ เท่านั้นแม้ว่าแอปของฉันรองรับ iOS 10+ และมีผู้ใช้ประมาณ ~ 50% iOS 12 นอกจากนี้ฉันไม่สามารถดีบักหรือทำซ้ำได้

จากข้อมูลนี้ฉันสรุปปัญหานี้ต้องเฉพาะกับ iOS 13 เมื่อเร็ว ๆ นี้มีใครเคยเจอปัญหาเดียวกันบ้างไหม สาเหตุที่เป็นไปได้วิธีแก้ปัญหา?

นี่คือการติดตามสแต็กจาก Crashlytics:

Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 0x1c25e1c30 __exceptionPreprocess
1  libobjc.A.dylib                0x1c22fc0c8 objc_exception_throw
2  CoreFoundation                 0x1c24d13ac -[NSCache init]
3  UIKitCore                      0x1c6b189a8 -[UIView(Internal) _addSubview:positioned:relativeTo:]
4  UIKitCore                      0x1c6078bb4 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke_2
5  UIKitCore                      0x1c6b11f60 +[UIView(Animation) performWithoutAnimation:]
6  UIKitCore                      0x1c6078630 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke
7  UIKitCore                      0x1c6b1784c +[UIView(Internal) _performBlockDelayingTriggeringResponderEvents:forScene:]
8  UIKitCore                      0x1c6078088 -[_UINavigationParallaxTransition animateTransition:]
9  UIKitCore                      0x1c606e2b0 ___UIViewControllerTransitioningRunCustomTransition_block_invoke_2
10 UIKitCore                      0x1c61822f8 +[UIInputResponderController _pinInputViewsForInputResponderController:onBehalfOfResponder:duringBlock:]
11 UIKitCore                      0x1c606e238 ___UIViewControllerTransitioningRunCustomTransition_block_invoke.648
12 UIKitCore                      0x1c6b11c0c +[UIView(Animation) _setAlongsideAnimations:toRunByEndOfBlock:]
13 UIKitCore                      0x1c606e088 _UIViewControllerTransitioningRunCustomTransition
14 UIKitCore                      0x1c5f9d77c -[UINavigationController _startCustomTransition:]
15 UIKitCore                      0x1c5fb0c18 -[UINavigationController _startDeferredTransitionIfNeeded:]
16 UIKitCore                      0x1c5fb20f8 -[UINavigationController __viewWillLayoutSubviews]
17 UIKitCore                      0x1c5f954e0 -[UILayoutContainerView layoutSubviews]
18 UIKitCore                      0x1c6b1fabc -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
19 libobjc.A.dylib                0x1c22f7af0 -[NSObject performSelector:withObject:]
20 QuartzCore                     0x1c90be0f4 -[CALayer layoutSublayers]
21 QuartzCore                     0x1c90be3fc CA::Layer::layout_if_needed(CA::Transaction*)
22 QuartzCore                     0x1c90d1964 CA::Layer::layout_and_display_if_needed(CA::Transaction*)
23 QuartzCore                     0x1c9016c1c CA::Context::commit_transaction(CA::Transaction*, double)
24 QuartzCore                     0x1c9041bd8 CA::Transaction::commit()
25 QuartzCore                     0x1c90427ac CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)
26 CoreFoundation                 0x1c255c67c __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
27 CoreFoundation                 0x1c255731c __CFRunLoopDoObservers
28 CoreFoundation                 0x1c25578cc __CFRunLoopRun
29 CoreFoundation                 0x1c2557098 CFRunLoopRunSpecific
30 GraphicsServices               0x1cc6c1534 GSEventRunModal
31 UIKitCore                      0x1c66777ac UIApplicationMain

อัปเดต 1 : ปัญหานี้เกี่ยวข้องกับ iPhone ทุกเครื่องที่ใช้ iOS 13 ไม่ใช่เฉพาะสาย iPhone X (S, R)

อัปเดต 2 : ปัญหาเกี่ยวข้องกับ iOS 12 เช่นกัน แต่ความขัดข้องเกิดขึ้นน้อยมากเมื่อเทียบกับ iOS 13 ฉันเดาว่าปัญหาเกี่ยวข้องกับการสร้างโครงการด้วย iOS 13 SDK เพราะรหัสเดียวกันที่สร้างด้วย iOS 12 SDK ไม่ ไม่ปล่อยปัญหาดังกล่าวและตรรกะการนำทางไม่ได้รับการอัปเดต


เราจะต้องเห็นรหัส ฉันเดาว่ามุมมองพยายามเพิ่มตัวเองเป็นมุมมองย่อย
ซามูเอล Noyes

ต่อไปนี้เป็นสิ่งที่ต้องพิจารณา: stackoverflow.com/a/21226801/2142112
Samuel Noyes

2
เรามีข้อผิดพลาดเกิดขึ้นเหมือนกัน แต่ในกรณีของเรามันไม่ได้ จำกัด อยู่ที่ iOS 13 ดูเหมือนว่าอาจเป็นเรื่องเกี่ยวกับการนำเสนอ / ผลัก / ยกเลิก / popping ดูคอนโทรลเลอร์ด้วยอนิเมชั่น แต่ฉันเห็นการทดสอบการถดถอยเท่านั้น ปรากฏขึ้นพร้อมกัน) เป็นวิธีการแก้ไขข้อบกพร่องที่ทำงานได้
EDUsta

1
@EDUsta สวัสดี ในกรณีของเราเราได้รับความผิดพลาดหลายอย่างใน iOS 12 (90% + ยังเป็น iOS 13) มันเฉพาะเจาะจงกับ iOS 13 SDK ด้วย iOS 12 SDK โค้ดเดียวกันไม่ได้ปล่อยข้อผิดพลาดใด ๆ ในประเภทนี้และเราไม่ได้เปลี่ยนตรรกะการนำทางในแอป
Aleksandr Honcharov

1
@chroman ดูเหมือนว่าแอพที่สร้างขึ้นด้วย Xcode 11.3 และ iOS SDK 13.3 จะไม่มีข้อผิดพลาดนี้อีกต่อไป ฉันเดาว่ามันจะถูกแก้ไขในด้าน Apple SDK
Aleksandr Honcharov

คำตอบ:


2

แอพที่สร้างขึ้นด้วยXcode 11.3และiOS SDK 13.3ไม่มีข้อผิดพลาดนี้อีกต่อไป ฉันเดาว่ามันจะถูกแก้ไขในด้าน iOS SDK


app ของเรายังคงเห็นการรายงานของความผิดพลาดนี้เมื่อสร้างขึ้นด้วย Xcode 11.3.1
esilver

@ esilver บางทีในบางกรณีมันเกิดขึ้น บางทีสถานการณ์ของคุณอาจแตกต่างกันเล็กน้อย แต่ในกรณีของเราความผิดพลาดก็หายไปโดยสิ้นเชิง
Aleksandr Honcharov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.