试图在谷歌地图上添加一个标记,但是当addMarker()函数调用时应用程序崩溃了,异常详细信息如下,
由于未捕获的异常’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.
解决方法@H_502_21@
在闭包中执行UI更新时(在我的情况下 – 绘制标记),请记住只获取主线程并在主线程上执行UI操作.
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
}
希望这对某人有帮助!
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 }
希望这对某人有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。