Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否有办法在MapKit中通过单个请求获取多个.TransportType的ETA?_Ios_Swift_Mapkit_Directions - Fatal编程技术网

Ios 是否有办法在MapKit中通过单个请求获取多个.TransportType的ETA?

Ios 是否有办法在MapKit中通过单个请求获取多个.TransportType的ETA?,ios,swift,mapkit,directions,Ios,Swift,Mapkit,Directions,如果步行时间少于15分钟,我会尝试为用户提供步行的预计到达时间,在其他情况下,我会为用户提供驾驶的预计到达时间。我希望在单个MKDirections.Request()中执行此操作,这样就不必在完成处理程序中递归调用同一个函数 我可以为request.transportType传入一个数组,但我无法将这两个值都返回,即使我可以在调试器中看到它们 func requestDirections(coordinates:CLLocationCoordinate2D, transitType:MKDir

如果步行时间少于15分钟,我会尝试为用户提供步行的预计到达时间,在其他情况下,我会为用户提供驾驶的预计到达时间。我希望在单个
MKDirections.Request()中执行此操作,这样就不必在完成处理程序中递归调用同一个函数

我可以为request.transportType传入一个数组,但我无法将这两个值都返回,即使我可以在调试器中看到它们

func requestDirections(coordinates:CLLocationCoordinate2D, transitType:MKDirectionsTransportType, completion:@escaping(_ travelTime:Double, _ transportType:String)-> Void){
    var travelTime:Double = -1.0
    let directionRequest = MKDirections.Request()
    directionRequest.source = MKMapItem.forCurrentLocation()
    directionRequest.destination = MKMapItem(placemark: MKPlacemark(coordinate: coordinates))
    directionRequest.transportType = [.automobile, .walking]
    
    let directions = MKDirections(request: directionRequest)
    directions.calculateETA(){(ETA,error)  in
        if(error == nil){
            if(ETA.sortedETAs[0]>15){
                completion(travelTime,"car")
            }else{
                completion(travelTime,"figure.walk")
            }
        }else{
            completion(travelTime, "none")
        }
        
    }
}
有可能做我正在尝试的事情吗

在调试器中,如果我右键单击并打印ETA返回中已排序ETA的说明:

Printing description of ETA.some._sortedETAs:
<__NSArrayM 0x6040003b4dd0>(
<GEOETAResultByType: 0x60b0000a4d80> {
    distance = 14530;
    historicTravelTime = 786;
    "static_travel_time" = 725;
    status = "STATUS_SUCCESS";
    transportType = AUTOMOBILE;
    travelTimeBestEstimate = 784;
},
<GEOETAResultByType: 0x60b0000a4cd0> {
    distance = 13111;
    historicTravelTime = 10362;
    "static_travel_time" = 10362;
    status = "STATUS_SUCCESS";
    transportType = WALKING;
    travelTimeBestEstimate = 10362;
}
打印预计到达时间的说明。部分分类如下:
(
{
距离=14530;
历史行程时间=786;
“静态行程时间”=725;
status=“status\u SUCCESS”;
运输类型=汽车;
travelTimeBestEstimate=784;
},
{
距离=13111;
historicTravelTime=10362;
“静态行程时间”=10362;
status=“status\u SUCCESS”;
运输类型=步行;
travelTimeBestEstimate=10362;
}