exc_bad_access على PresentViewController: الرسوم المتحركة: الانتهاء

StackOverflow https://stackoverflow.com/questions/19854138

سؤال

لقد كنت أحاول حل هذا خلال اليومين الماضيين. غير قادر على فهم سبب تعطل تطبيقي.

أنا استخدم JASidePanel مكتبة لتحقيق تأثير اللوحة في تطبيقي. اللوحة الجانبية اليسرى عبارة عن عرض طاولة تعمل مثل دليل التنقل للوحة المركزية. في أحد السيناريو ، عندما يتم تحديد خيار معين في اللوحة الجانبية اليسرى (عندما يكون ذلك مفتوحًا) ، من المفترض أن تغلق اللوحة المركزية اللوحة الجانبية اليسرى وتقديم وحدة تحكم جذر أخرى (مع متسقة). ومع ذلك ، في بعض الأحيان يعطل هذا الانتقال تطبيقي.

لاحظت أن الحادث لا يحدث في رمز Jasidepanel أو رمز وحدة التحكم في عرض اللوحة المركزية ([self presentViewController:self.cityNavigationController animated:YES completion:nil];). لاحظت بوضوح أن التطبيق يتعطل بسبب بعض الانهيار الداخلي بسبب إطار iOS ، مررت بكل تعليمات عن طريق التعليمات وروحت ذلك.

لكن لا يزال ، أعتقد أنني أفعل شيئًا خاطئًا. هل يمكن لأي شخص أن يقترحني لماذا يمكن أن يحدث هذا الحادث؟ ما الذي يجب أن أبحث عنه لحل هذه المشكلة؟ أي خطوات أو إجراءات يمكنني/يجب أن أتابعها للكشف عن المشكلة؟

أي مساعدة موضع تقدير.

سجل الجهاز:

Thread 0 Crashed:
0   libobjc.A.dylib                 0x3a085b26 objc_msgSend + 6
1   UIKit                           0x3257c788 -[UISearchBar _didMoveFromWindow:toWindow:] + 152
2   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
3   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
4   UIKit                           0x324bb5e2 -[UIScrollView _didMoveFromWindow:toWindow:] + 46
5   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
6   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
7   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
8   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
9   UIKit                           0x32499e68 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 108
10  Foundation                      0x30688d98 -[NSISEngine withBehaviors:performModifications:] + 208
11  UIKit                           0x32499cf2 -[UIView(Hierarchy) _postMovedFromSuperview:] + 294
12  UIKit                           0x324a6998 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1400
13  UIKit                           0x324a6412 -[UIView(Hierarchy) addSubview:] + 26
14  UIKit                           0x32587d8a -[UITransitionView transition:fromView:toView:removeFromView:] + 974
15  UIKit                           0x32587998 -[UIViewControllerBuiltinTransitionViewAnimator animateTransition:] + 444
16  UIKit                           0x32587406 __101-[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:animation:]_block_invoke_2 + 1250
17  UIKit                           0x3251afb6 _applyBlockToCFArrayCopiedToStack + 314
18  UIKit                           0x324931ee _afterCACommitHandler + 426
19  CoreFoundation                  0x2fcf31ca __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18
20  CoreFoundation                  0x2fcf0b6c __CFRunLoopDoObservers + 280
21  CoreFoundation                  0x2fcf0eae __CFRunLoopRun + 726
22  CoreFoundation                  0x2fc5bc22 CFRunLoopRunSpecific + 518
23  CoreFoundation                  0x2fc5ba06 CFRunLoopRunInMode + 102
24  GraphicsServices                0x3493a27e GSEventRunModal + 134
25  UIKit                           0x324ff044 UIApplicationMain + 1132
26  Housing India                   0x000a2606 main (main.m:16)
27  libdyld.dylib                   0x3a592ab4 start + 0
هل كانت مفيدة؟

المحلول

حسنًا ، إذا كان هذا يساعد لأي شخص.

كانت المشكلة مع إطار iOS. كانت المشكلة مع تنفيذ UinavigationController. كان الحادث يحدث داخل الإطار نفسه. كانت الطريقة الوحيدة الممكنة للخروج هي إنشاء مراقب التنقل في كل مرة ، قبل تقديمه. هذا يقلل من الأداء ، ولكن ليس لديه خيار آخر. أبل ، حقا لديها الكثير من القيود والافتراضات. : ص

تفسير: كنا بحاجة إلى تقديم وحدة تحكم التنقل مع الرسوم المتحركة المشروطة. كنا نحاول تجنب تثبيت مراقب التنقل مرارًا وتكرارًا عن طريق إنشاء مثيل له مرة واحدة ومحاولة إعادة استخدامه. ومع ذلك ، ولهذا السبب ، لاحظنا حادث حادث يحدث في وقت ما. لا تعرف بالضبط معنى الحادث ، ولكن إصلاحه عن طريق إنشاء مثيله مرارًا وتكرارًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top