试图在谷歌地图上添加一个标记,但是当addMarker()函数调用时应用程序崩溃了,异常详细信息如下, 由于未捕获的异常’GMSThreadException’而终止应用,原因是:’所有对iOS版Google地图SDK的调用
由于未捕获的异常’GMSThreadException’而终止应用,原因是:’所有对iOS版Google地图SDK的调用必须来自UI线程’
仅供参考vwGogleMap是全球性的,我正在尝试绘制标记.
func addMarker() -> Void { var vwGogleMap : GMSMapView? var position = CLLocationCoordinate2DMake(17.411647,78.435637) var marker = GMSMarker(position: position) marker.title = "Hello World" marker.map = vwGogleMap }
任何帮助,将不胜感激,
TIA.
在闭包中执行UI更新时(在我的情况下 – 绘制标记),请记住只获取主线程并在主线程上执行UI操作.错误我所做的是,我正在尝试在Web服务完成块中绘制标记.
dispatch_async(dispatch_get_main_queue(), { var position = CLLocationCoordinate2DMake(17.411647,78.435637) var marker = GMSMarker(position: position) marker.title = "Hello World" marker.map = vwGogleMap }) // For swift 3.0 support. // 1. Get Main thread DispatchQueue.main.async { // 2. Perform UI Operations. var position = CLLocationCoordinate2DMake(17.411647,78.435637) var marker = GMSMarker(position: position) marker.title = "Hello World" marker.map = vwGoogleMap }
希望这对某人有帮助!