gpt4 book ai didi

ios - 如何在 mapview.setRegion 函数上捕获运行时异常

转载 作者:行者123 更新时间:2023-11-28 10:57:21 26 4
gpt4 key购买 nike

我有一个名为 alertMap 的 socket (MKMapView),在我的 viewWillAppear 中我设置了我的 alertMap 的初始 View 。

func centerMapOnLocation(_ location: CLLocation) -> Bool {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, regionRadius * 1.0, regionRadius * 1.0)

alertMap.setRegion(coordinateRegion, animated: true) // TODO: crash

return true
}

有时在我的代码中(我不知道为什么,但这是另一次的另一个问题......)我的位置坐标存储在我的 API 中是错误的,导致上面的函数崩溃。

我尝试了几种方法来“捕获”异常,但似乎不可能。

我怎样才能捕捉到这个运行时错误。

错误读取:

2017-02-28 12:54:33.400319 myApp[10433:2647466] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid Region <center:+1197269.18497000, -7972692.46846000 span:+0.00895306, -0.62941112>'
*** First throw call stack:
(0x1869091b8 0x18534055c 0x186908e80 0x192bffa0c 0x1000bd77c 0x1000bc728 0x1000bd4c0 0x18c7d6754 0x18c7d64cc 0x18cb0cf04 0x18ca4ffdc 0x18ca41d50 0x18c7b10b4 0x1868b60c0 0x1868b3cf0 0x1868b4180 0x1867e22b8 0x188296198 0x18c8297fc 0x18c824534 0x100130530 0x1857c55b8)
libc++abi.dylib: terminating with uncaught exception of type NSException

最佳答案

正如几个不同的人所指出的:

  1. 您不应该首先尝试忽略运行时异常。即使在 Objective-C 中,这也应该被视为最后的手段。
  2. 即使您想忽略运行时异常,swift 也不允许您这样做。

您需要做的是使用保护 block 验证数据,然后追溯问题的根源,例如:

func centerMapOnLocation(_ location: CLLocation) -> Bool {
guard (-90.0 ... 90.0).contains(location.coordinate.latitude) else {
print("Unexpected latitude value \(location.coordinate.latitude)")
return false
}

guard (-180.0 ... 180.0).contains(location.coordinate.longitude) else {
print("Unexpected longitude value \(location.coordinate.longitude)")
return false
}

guard (0 ..< 10000.0).contains(regionRadius) else {
print("Unexpected region radius \(regionRadius)")
return false
}

let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, regionRadius * 1.0, regionRadius * 1.0)

alertMap.setRegion(coordinateRegion, animated: true) // TODO: crash

return true
}

关于ios - 如何在 mapview.setRegion 函数上捕获运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com