문제

나는 지난 이틀 동안 이것을 해결하려고 노력해 왔습니다. 내 앱이 왜 충돌하는지 이해할 수 없습니다.

사용 중입니다 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