2

アプリからのメッセージをリッスンし、メッセージNSNotificationCenterを受信したときに JS 側にイベントを送信しようとしています。NSSystemTimeZoneDidChangeNotification主に、ユーザーのデバイスのタイムゾーンが変更されたかどうかを検出するために使用できるメッセージに興味があります。AppDelegate.swiftこのために次のコードを追加しました。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
  // Existing code
  NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(AppDelegate.timezoneChanged), name: NSSystemTimeZoneDidChangeNotification, object: nil)
}

func timezoneChanged() {
  let appEventEmitter = self.bridge.moduleForClass(AppEventEmitter) as! AppEventEmitter
  appEventEmitter.sendEventWithName("timezoneChanged", body:nil)
}

この変更後、電話のタイムゾーンを変更してアプリに移動すると、timezoneChanged関数が呼び出されますが、すぐにコードに例外が表示され、アプリケーションがクラッシュします

fatal error: unexpectedly found nil while unwrapping an Optional value

問題はにあると思いappEventEmitterます。アプリの他の部分で正確なコードを使用して JS 側にイベントを送信していますが、ここで機能しない理由がわかりません。関数の実装を print ステートメントだけに変更するtimezoneChangedと、print ステートメントを確認でき、アプリはクラッシュしません。

私は Swift 言語自体を知りませんし、この問題をデバッグする方法もわかりません。この問題のデバッグに役立つポインタがあれば教えてください。

4

0 に答える 0