2017-05-17 1 views
1

신속한 파일에서 다음 기능을 사용하고 있습니다. Obj C 파일에서 NSDate를 startDate 대신 호출하고 있습니다. 그리고 아주 자주, 때마다, 내 응용 프로그램 충돌 "Date._unconditionallyBridgeFromObjectiveC (NSDate?)". 이 문제를 어떻게 해결할 수 있습니까? 내가 날짜 변환에있는 NSDate를 생각 Date._unconditionallyBridgeFromObjectiveC (NSDate?) Swift 3에서 충돌이 발생했습니다.

 
Crashed: com.apple.main-thread 
0 libswiftFoundation.dylib  0x102061e98 static Date._unconditionallyBridgeFromObjectiveC(NSDate?) -> Date + 72 
1 Acid       0x10017ece4 @objc static ClusteredMixpanel.trackMeetingEnded(String, startDate : Date, backgroundTime : Double) ->() (MixpanelMeeting.swift) 
2 Acid       0x10073e1bc __56-[MeetingLifeCycleViewController stateInitialization]_block_invoke.221 (MeetingLifeCycleViewController.m:267) 
3 Acid       0x1001ee5c4 partial apply for thunk (StateMachine.swift) 
4 Acid       0x1001ea70c specialized State.willLeaveState(State) ->() (StateMachine.swift:238) 
5 Acid       0x1001ead90 specialized StateMachine.transitionToState(State) -> Bool (StateMachine.swift) 
6 Acid       0x1001e1f18 @objc StateMachine.transitionToState(State) -> Bool (StateMachine.swift) 
7 Acid       0x10073ace0 -[MeetingLifeCycleViewController dismissCall] (MeetingLifeCycleViewController.m:538) 
8 Acid       0x10086d648 -[InMeetingViewController hangup] (InMeetingViewController.m:531)

enter code here

func trackMeetingEnded(_ name: String, startDate: Date, backgroundTime: TimeInterval) {} 

스택 추적이 경우에는 OS에 의해 이루어집니다. 이 문제는 Swift 3으로 마이그레이션 한 후에 만 ​​볼 수 있습니다.이 문제와 관련하여 알려진 문제가 있습니까? 온라인에서 아무것도 찾을 수 없습니다. (

+0

기능 또는 코드 붙여 넣기 – kb920

답변

2

Objective-C에서 제공되는 NSDate이 실제로는 nil이 아닌지 다시 한 번 확인해야합니다. Obj-C 쪽에서 실제로 적용되는 것은 없기 때문에 가능합니다. 나는 다음 guard let 검사의 전체 많이하고,의 Obj-C에서 호출되는 찾을 수 있기 스위프트 쪽.

나는 Date?들에 많은 Date의 변환 감아.

을 당신은 또한 assertionFailure에 던질 수 당신이 개발 중에있을 때 그 사람들이 에 날짜 y 기대가 오지 않는다. 예를 들면 : 그가 당신이 예상치 못한 nil 값을 얻고있는 이유에 더 나은 그립을 얻을 수 있는지 확인하기 위해 당한다 때

guard let date = passedInDate else { 
    assertionFailure("Turns out the passed-in date was nil!") 
    return 
} 

는 그런 다음 스택 트레이스를보십시오.

업데이트 : Here의 경우 Swift 소스 코드에서 충돌이 발생합니다.

+1

나는 선택 사항으로 startDate를 만들어야했습니다. 밖으로가는 것이 통과되고있는 것으로 밝혀진다. – Vinuta

관련 문제