【Swift】【XCode】MKMapViewのsetRegionの例外がNSErrorになってSwiftでエラーキャッチできないときの対策

目次

MKMapViewのsetRegionの例外がNSErrorでSwiftでキャッチできない

原因

エラーの原因は、緯度と経度の値の範囲がおかしいでした。

Apple的には、setRegionで緯度経度を設定する前に、値の範囲ぐらいチェックしろとのことだろうと勝手に考えることにしました。

対策

  • Object-Cのエラーをキャッチする
  • 緯度経度の範囲をsetRegionを使う前に判定する

Object-Cのエラーをキャッチする

Object-Cのエラーキャッチをブリッジすればいいと思ったのですが、Object-Cがわからないので考え方として覚えておく

緯度経度の範囲をsetRegionを使う前に判定する

これが一番無難な気がしたので、こちらで対策することにします。

参考 : https://www.pasco.co.jp/recommend/word/word026/

参考サイトを元にすると以下のようなチェックをすればいいと考えました。

1
2
3
4
5
6
7
8
9
10
11
//  緯度範囲エラー
if lat < 0 || lat > 90{
print("緯度は、0~90度の間で入力してください")
return
}

// 経度範囲エラー
if log < 0 || log > 180{
print("経度は、0~180度の間で入力してください")
return
}

【Swift】【XCode】MKMapViewのsetRegionの例外がNSErrorになってSwiftでエラーキャッチできないときの対策

https://blog.djima.net/2021/08/03/【Swift】【XCode】MKMapViewのsetRegionの例外がNSErrorになってSwiftでエラーキャッチできないときの対策/

Author

Daiki Iijima

Posted on

2021-08-03

Updated on

2024-04-17

Licensed under