Swift UIを使ってクラスを実行したらエラーが出た話

みなさんこんにちは!
イザナギです。
今回も前回に引き続き、Xcode(Swift)を用いた開発をしていたときに発生したエラーについて書いていきたいと思います。 
さて今回発生したエラーは「EXCBADACCESS (code=1, address=0xc)」です!
それでは、なぜこのエラーが起きてしまったのか説明していきたいと思います。

エラーが出た時の状況

なぜこのエラーが起きたかを説明していきたいと思います。
自分はSwiftUIでIOSアプリケーションの開発をしていたのですが、クラスをUIkitで使っていたクラスをそのままコピーアンドペーストして使おうとしていました。
ファイルにペーストした時点では、なんのエラーもはいていませんでした。
しかし、SwiftUIのファイルでクラスを実行しようとすると「EXCBADACCESS」のエラーが発生し、クラスが実行できませんでした。

EXCBADACCESSとは?

そもそも「EXCBADACCESS」って何って話ですよね。
不正アクセスなんてしたっけ?
実際色々と調べてみると、「エラー欄に書いてある、メモリにアクセスしたらメモリが既に解放されていて何もなかったよ」というエラーらしいです。
つまりメモリーに何も入ってなかったってことですね。
しかも、このエラー原因とされるものが多くあるため解決するのが難しいらしいんです。
今回の場合も解決するまで時間を結構使ってしまいました。
後で振り返ると簡単なことだったんですけどねwww

どうやって解決したか?

今回のエラーを解決させた方法は簡単でした!
最初から、SwiftUIを使わずにUIkitに戻して作り直したらエラーを吐かなくなりました。
SwiftUIが登場してから、SwiftUIでアプリケーションを作って見たかったのですが今までのクラスはそのままは使えないみたいですね。
海外のサイトになりますが同じような悩みを持っている方々がいるみたいですね。
Attempting to run Swift UI App on iPhone XR: Thread 1: EXCBADACCESS (code=2, address=0x100470190)

まとめ

今回の反省点としては、SwiftUIの勉強が足りなかったという点ですね。
まだ試してないですが、SwiftUIでクラスを実行する方法が他にもあると思いますので、確認出来次第ブログに挙げていきたいと思います!
それでは、今回はここで筆を置かせていただきます。
最後までご覧いただきありがとうございました!

■関連記事(精度そんな良くないかもwww)

■関連トピック

2024 - Izanagi's Site