来自Alamofire的数据的MapBox PointAnnotations问题

问题描述

在我的应用中,我需要从服务器获取注释坐标,因此即时获取Alamofire请求。当我尝试添加注释以从Alamofire pid即时贴获取未知错误

class MapViewController : UIViewController,MGLMapViewDelegate,FloatingPanelControllerDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()
        ....
        ....
        getDataFromServer()
    }
    
    func getDataFromServer() {
        let coffeeShopsJSON = AF.request("http://194.6*******")
        coffeeShopsJSON.responseJSON { response in
            switch response.result {
                case .success(let value):
                    let jsonFile = JSON(value)
            
                    let arrayCount = jsonFile.array?.count ?? 0
                    var id = [Int]()
                    var name = [String]()
                    var lat = [Double]()
                    var lon = [Double]()
                    var img = [UIImage(named : "cofShopIcon"),UIImage(named : "cofShopIcon"),UIImage(named : "cofShopIcon")] //test images
                    
                    for i in 0..<arrayCount {
                        let j_id = jsonFile[i]["id"].string ?? "-1"
                        id.append(Int(j_id) ?? -1)
                        
                        let j_name = jsonFile[i]["name"].string ?? "N/A"
                        name.append(j_name)
                        
                        let j_lat = jsonFile[i]["coordX"].string ?? "-1.0"
                        lat.append(Double(j_lat) ?? -1.0)
                        
                        let j_lon = jsonFile[i]["coordY"].string ?? "-1.0"
                        lon.append(Double(j_lon) ?? -1.0)
                    }
                    
                    for i in 0..<id.count {
                        mapData.append(coffeeShopsData(shopId : id[i],name : name[i],icon : img[i],latitude : lat[i],longitude : lon[i]))
                    }
                    
                    for i in 0..<mapData.count {
                        let point = MGLPointAnnotation()
                        point.coordinate = CLLocationCoordinate2D(latitude : mapData[i].latitude ?? 0,longitude : mapData[i].longitude ?? 0)
                        point.title = mapData[i].name ?? "*Data Error*"
                        markers.append(point)
                    }
                    self.mapView.addAnnotations(markers)
                                       
                 case .failure(let error):
                    print(error)
            }
        }
    }

}

错误libc++abi.dylib: terminating with uncaught exception of type std::domain_error

我是新手,所以任何建议都会有用

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...