Nar*_*y M 5 markers ios google-maps-sdk-ios gmsmapview swift
试图在谷歌地图上添加一个标记,但应用程序在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.
Nar*_*y M 22
在闭包中执行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
}
希望这对某人有帮助!
/// Marker - Google Place marker
let marker: GMSMarker = GMSMarker() // Allocating Marker
 marker.title = "Title" // Setting title
 marker.snippet = "Sub title" // Setting sub title
 marker.icon = UIImage(named: "") // Marker icon
 marker.appearAnimation = .pop // Appearing animation. default
 marker.position = location.coordinate // CLLocationCoordinate2D
DispatchQueue.main.async { // Setting marker on mapview in main thread.
   marker.map = mapView // Setting marker on Mapview
}
| 归档时间: | 
 | 
| 查看次数: | 15644 次 | 
| 最近记录: |