「window is not equal to」というログメッセージ

ログに"window is not equal to"というメッセージが出力された。windowとあるので、Storyboardに問題があるのかと思ったが違った。また、メッセージの中にあるViewControllerが原因でもなかった。遷移元のViewControllerでperformSegue(withIdentifier:sender:)を2回呼んでいたことが原因だった。

's window is not equal to 's view's window!

ヒントになった

teratail「window is not equal to」というログメッセージ

問題のコード

if user == nil {
    self.performSegue(withIdentifier: "segueA", sender: nil)
    return // このreturnを忘れた
}

self.performSegue(withIdentifier: "segueB", sender: nil)

// 終了

今回のケースでは、userがnilでないときに追加して他のことをするならguard文で書くのが妥当。上記のコードでは、遷移先の選択のみなので、guard文ではなくif else で並列に書くと意図が明確になると思う。


あぜち(おばあちゃん)

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント