【Swift】配列の要素を安全に取り出す方法!範囲外エラーの解決法

この記事からわかること
- Swiftで配列の要素を安全に取得するには?
- インデックスの有効範囲をチェックする方法
- 範囲外エラー:Execution was interrupted, reason: EXC_BREAKPOINT
\ アプリをリリースしました /
環境
- Xcode:14.3.1
- iOS:16.4
- Swift:5.8.1
配列の要素を安全に取り出す方法
配列の要素を取得する際に存在しないインデックスを指定すると範囲外でエラー「Execution was interrupted, reason: EXC_BREAKPOINT
」を吐きます。
このエラーが発生するとアプリがクラッシュしてしまうので範囲外にアクセスしないように最初にインデックスが有効かどうかをチェックすると安全なのですが、これを解決する方法として良い方法があったので共有しておきます
範囲外かどうかをチェックする方法
範囲外かどうかをチェックするにはindices
でインデックスの配列を取得し、contains
でその中に対象のインデックス番号が存在するかをチェックすることで安全に配列の要素を取得することができます。
これを頭の良いかたがCollection
を拡張して以下のように実装されていました。
参考文献(引用):Safe (bounds-checked) array lookup in Swift, through optional bindings?
これにより以下のように記述することができるようになります。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。