「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は誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

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

有料記事を販売できるようになりました!

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

コメント