나는 전혀 일어나지 않아야 할 매우 이상한 사고로 어려움을 겪었습니다. Hockeyapp을 통해 충돌 보고서를받습니다. 앱이 충돌해서는 안되는 라인에서 충돌을 계속보고합니다. 나는 벌써 1 주일 동안이 문제에 직면 해왔다.Swift ("if, let, where"문)에서 충돌이 발생하지 않아야하는 줄의 충돌
이if let booking = rescheduleBooking where booking.confirmed! == 0 {
existingRequests.append(booking)
}
라인 755은 if 문입니다 :
이
은 충돌 보고서를 코드의0 TeacherBox 0x00000001000864f0 TeacherBox.RequestLessonViewController.loadExistingRequests() ->() (RequestLessonViewController.swift:755)
1 TeacherBox 0x0000000100086514 @objc TeacherBox.RequestLessonViewController.loadExistingRequests() ->() (RequestLessonViewController.swift:0)
2 TeacherBox 0x0000000100086a84 function signature specialization <Arg[0] = Dead> of TeacherBox.RequestLessonViewController.viewDidAppear (Swift.Bool) ->() (RequestLessonViewController.swift:122)
3 TeacherBox 0x000000010007e570 @objc TeacherBox.RequestLessonViewController.viewDidAppear (Swift.Bool) ->() (RequestLessonViewController.swift:0)
4 UIKit 0x00000001895b84dc -[UIViewController _setViewAppearState:isAnimating:] + 844
5 UIKit 0x00000001895b8a40 -[UIViewController _endAppearanceTransition:] + 216
6 UIKit 0x0000000189671038 -[UINavigationController navigationTransitionView:didEndTransition:fromView:toView:] + 1232
7 UIKit 0x0000000189742198 __49-[UINavigationController _startCustomTransition:]_block_invoke + 228
8 UIKit 0x00000001896c7cc4 -[_UIViewControllerTransitionContext completeTransition:] + 112
9 UIKit 0x00000001898181ec __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke.97 + 708
10 UIKit 0x00000001895d9214 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 488
11 UIKit 0x00000001895d8d38 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 308
12 UIKit 0x00000001895d8b78 -[UIViewAnimationState animationDidStop:finished:] + 156
라인입니다. "if, let, where"명령문에서 "let"은 rescheduleBooking의 존재를 확인합니다. 존재하고 할당 되었으면 where 문이 실행됩니다. ... 맞습니까? 어쨌든, 테스트를 마쳤습니다. 내 장치 및 시뮬레이터에서 로컬로 작동하며 값이 아무리 많아도 충돌하지 않습니다 ... 손에없는 다른 장치에서 발생하고 있습니다 ...
어떤 조언을하거나 어쩌면 내가 "if, let where"절을 올바르게 이해하지 못하면 귀하의 도움과 의견에 매우 감사 할 것입니다.
감사합니다 ..
제거'let'을 시도 :
당신은
booking.confirmed
이nil
있지 않은지 확인하기 위해 다른하자를 추가 할 수 있습니다. –'booking.confirmed'가 무효 인 경우 충돌이 발생합니다 – Paulw11