「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はαバージョンで開発中です。進捗は公式Twitterアカウントをフォローして確認してください。 興味がある方は是非記事の投稿もお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
関連記事

コメント