में मानचित्र दृश्य पर MKPolyLine दिखाई नहीं दे रहा है मेरे पास एक मानचित्र में MKPolyline जोड़ने के लिए स्विफ्ट में निम्न कोड है। एक्सकोड मुझे नहीं बता रहा है कि एक मुद्दा है, और जहां तक मैंने पढ़ा है, यह काम करना चाहिए। MapView के लिएस्विफ्ट
आउटलेट:
@IBOutlet weak var mapView: MKMapView!
चर निर्देशांक धारण करने के लिए:
var coordinates: [CLLocationCoordinate2D] = []
कोर डाटा से मेरी बचाया निर्देशांक प्राप्त करें:
var contextMap = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!
var requestMap = NSFetchRequest(entityName: "Locations")
let predMap = NSPredicate(format: "game = %d", passedGameNumber)
requestMap.predicate = predMap
requestMap.sortDescriptors = [NSSortDescriptor(key:"time", ascending: false)]
self.locationsList = contextMap.executeFetchRequest(requestMap, error: nil)! as [Locations]
कोर डाटा से निर्देशांक जोड़े मेरी नई सरणी में:
पॉलीलाइन बनाएँ:
var polyLine = MKPolyline(coordinates: &coordinates, count: coordinates.count)
ओवरले जोड़ें:
self.mapView.addOverlay(polyLine, level: MKOverlayLevel.AboveRoads)
MapView में जोड़ें:
func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
if overlay.isKindOfClass(MKPolyline) {
// draw the track
let polyLine = overlay
let polyLineRenderer = MKPolylineRenderer(overlay: polyLine)
polyLineRenderer.strokeColor = UIColor.blueColor()
polyLineRenderer.lineWidth = 2.0
return polyLineRenderer
}
return nil
}
मैं बस एक खाली MapView मिलता है। मैं कंसोलेट्स सरणी को कंसोल पर प्रिंट कर सकता हूं, इसलिए मुझे पता है कि डेटा जोड़ा गया है। कोई विचार?
अपने ViewController 'MKMapViewDelegate' प्रोटोकॉल के अनुरूप है? – zisoft
क्या नक्शा व्यू का प्रतिनिधि आउटलेट व्यू कंट्रोलर से जुड़ा हुआ है? AddOverlay के बाद, self.mapView.overlays.count 1 कहता है? क्या rendererForOverlay विधि वास्तव में बुलाया जाता है (वहाँ ब्रेकपॉइंट या println डाल)? क्या निर्देशांक वैध/पीछे हैं (ऐसा होता है)? असंबंधित, लेकिन 1 में इंडेक्स के लिए नहीं होना चाहिए .. 0 में सूचकांक के लिए '' 'होना चाहिए .. <'? – Anna
दोनों धन्यवाद। अन्ना, मैंने ब्रेकपॉइंट जोड़ा और ऐसा लगता है कि इसे नहीं कहा जा रहा है। एक मूर्ख सवाल हो सकता है, लेकिन मैं इसे कैसे हल कर सकता हूं? मुझे यकीन है कि यह आसान है। इंडेक्स के बारे में 1 टिप्पणी में, यह मुझे एक त्रुटि दे रहा था जब मेरे पास पहले 0 था - अब यह 1. –