2016-07-27 8 views
1

Ich versuche, die MapKit Directions Request zu verwenden, um die Wegbeschreibung zwischen zwei Koordinaten zu erhalten.Transit MKDirectionsRequest erzeugt Nullfehler Fehlerdomäne = MKErrorDomain Code = 5 "(null)"

Wenn ich zu anderen (nicht-Transit) Typen umschalte, funktioniert der folgende Code, aber wenn ich zu Transit wechsle, wird ein Fehler ausgegeben, der nirgendwo in der Dokumentation von Apple auftaucht.

Die beiden Standorte (Quelle und Ziel) sind beide in New York City, daher sollte es auf jeden Fall Verkehrsanweisungen geben.

Fehlermeldung:

Error Domain=MKErrorDomain Code=5 "(null)" 

-Code-Schnipsel:

override func viewDidLoad() { 
    super.viewDidLoad() 

    let request = MKDirectionsRequest() 

    // Set request parameters 
    request.source = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: 40.7127, longitude: -74.0059), addressDictionary: nil)) 
    request.destination = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: 40.6761, longitude: -73.9521), addressDictionary: nil)) 
    request.requestsAlternateRoutes = true 

    // Set tranport type parameter (anything other than .Transit works) 
    request.transportType = .Transit 

    let directions = MKDirections(request: request) 

    directions.calculateDirectionsWithCompletionHandler { response, error in 
     print(response) 

     guard let routes = response?.routes else { 
      print(error?.description) 
      return 
     } 

     // Prints step-by-step directions 
     for r in routes { 
      print("New route") 
      for step in r.steps { 
       print(" " + step.instructions) 
      } 
     } 
    } 
} 

Alle Ratschläge, was ich könnte für den bestimmten Transit Fall falsch machen werden? Vielen Dank!

Antwort

2

Routinganweisungen für die Übertragung werden derzeit nicht unterstützt (iOS 9). MKDirectionsRequest wird einen Nullfehler zurückgeben, wie Sie beobachtet haben.

Dies scheint nur direkt in MapKit-Kopfzeilen dokumentiert zu sein. Sehen Sie sich den Kommentar für den Typ Transit an.

// MKDirectionsTypes.h 

@available(iOS 7.0, *) 
public struct MKDirectionsTransportType : OptionSetType { 
    public init(rawValue: UInt) 

    public static var Automobile: MKDirectionsTransportType { get } 
    public static var Walking: MKDirectionsTransportType { get } 
    @available(iOS 9.0, *) 
    public static var Transit: MKDirectionsTransportType { get } // Only supported for ETA calculations 
    public static var Any: MKDirectionsTransportType { get } 
} 
+0

Hmm .. das ist nervig. Danke für die schnelle Hilfe! Akzeptierte deine Antwort. – bayyar