多个 Swift MapKit 路由按顺序排列

问题描述

我想把不同检查点的路线加在一起。每次,路由都以随机方式排序(执行 print(step.instructions) 时)。但是直到执行 print(nextCheckpoint,prevIoUsCheckpoint) 时,它们都是完美排序的。因此,在创建 MKDirections 请求时似乎存在问题(不同的路由被打乱)。供您参考:最后,每条路线都已绘制并完成,只是没有按照所需的顺序。代码如下:

{mID a9d50454f624         case xxx reason yyy judgement zzz}
{mID a9d5049e34e934bff9b  case xxx reason yyy judgement zzz}
{mID a67c9e34e934bff9b    case xxx reason yyy judgement zzz}

}

感谢您的帮助!

解决方法

您不能假设以 1、2、3、4、5 的顺序创建的异步的方向计算请求都需要相同的时间来处理,因此结果总是会返回按照 1,2,3,4,5 的顺序。您需要处理以任何顺序返回的结果,例如 1,5,2 - 通过将 examSteps.append(step) 替换为类似 {{1 }} 然后等待所有的 i 回来