WEB・アプリ開発

Swiftで「Could not find an overload for ‘==’ that accepts the supplied arguments」というエラーが出た場合

以下のコードの3行目でエラーが発生しました。

エラー内容

このようなエラーです。

原因

理由は最初のコードの1行目でas!を使用しているため、cellはoptional型ではないのに、3行目でnilチェックをしているためです。

スポンサーリンク

解決策

なので、解決策は以下の二つのどちらかです。

  • 1行目のas!as?に変えてcellをoptional型にする。
  • nilではないのが明らかなので、3〜5行目を削除する。

私の場合は、他の場所で-registerClass:forCellReuseIdentifierを使ってデフォルトのUITableViewCellを登録しており、nilにはなり得なかったので、二つ目の方法を採用しました。

参考

Swift: could not find an overload for conversion that accepts supplied argument