2017-05-17 13 views
1

私は迅速なファイルに以下の機能を持っています。私は、startDateの代わりにNSDateをObj Cファイルから呼び出しています。そして、たいてい、毎回ではなく、私のアプリケーションが "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ではないことをもう一度確認する必要があります.Ovj-C側ではそれが積極的に実施されているスウィフト側。

私はその後、guard letチェックの全体の多くをやって、私がobj-Cから呼び出されて見つけることができるようDate?秒にできるだけ多くDateの変換巻き上げる。

ます。またassertionFailureに投げることができますあなたがどこに開発中のときにあなたに叫ぶのですか?nilはyお元気ですか?例えば:それはあなたがそこに予期しないnil値を取得している理由について、より良いグリップを得ることができるかどうかを確認するためにヒットがあったとき

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

は、その後、あなたのスタックトレースを見てみましょう。

更新:Hereここで、Swiftソースコードでクラッシュが発生しています。

+1

私はオプションとしてstartDateを作成しなければなりませんでした。私は、nilがパスされたことが分かります。 – Vinuta

関連する問題