Я получаю ошибку во время выполнения в точке, отмеченной ниже? Как вызвать функцию "url" MKTileOverlay из подкласса? получать EXC_BAD_INSTRUCTION?
Как правило, в некоторых местах требуется отображать пользовательские листы, но когда они недоступны, вернитесь к стандартным листам карты Apple.
class GCMapOverlay : MKTileOverlay {
override func url(forTilePath path: MKTileOverlayPath) -> URL {
// Get local custom map tile if available
let optionalUrl = Bundle.main.url(
forResource: "\(path.y)",
withExtension: "png",
subdirectory: "tiles/\(path.z)/\(path.x)",
localization: nil)
NSLog("tiles/\(path.z)/\(path.x)/\(path.y)")
guard let url = optionalUrl else {
// Local tile not available - want to drop back to an apple maps tile (as if MKTileOverlay wasn't subclassed)
return super.url(forTilePath: path) // <== RUNTIME ERROR: NetworkLoad (10): EXC_BAD_INSTRUCTION
}
// Local tile available so return
return url
}
}
в моем контроллере
func setupTileRenderer() {
let overlay = GCMapOverlay()
overlay.canReplaceMapContent = true
mapView.addOverlay(overlay, level: .aboveLabels)
tileRenderer = MKTileOverlayRenderer(tileOverlay: overlay)
}