Les broches ne sont pas montrées en utilisant Parse.com

J'essaye d'append des épingles à quelques locations que j'ai créés dans une de mes classs, qui s'appelle des «endroits».

La key de ces locations est définie comme "lieux_coordonnées".

J'ai essayé de placer ces broches comme suit:

View Controller.h #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> #import <Parse/Parse.h> @interface ViewController : UIViewController<CLLocationManagerDelegate, MKMapViewDelegate> @property (nonatomic, retain) CLLocationManager *locationManager; @property(nonatomic, strong) MKPinAnnotationView *geoPointAnnotation; @property(nonatomic, strong)MKPointAnnotation *annotation; @property(nonatomic, strong)CLLocation *location; @property (nonatomic, strong) PFObject *detailItem; @property (weak, nonatomic) IBOutlet MKMapView *appleMap; @end ViewController.m - (void)viewDidLoad { [super viewDidLoad]; if (nil == self.locationManager){ self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; //Configure Accuracy depending on your needs, default is kCLLocationAccuracyBest self.locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; // Set a movement threshold for new events. self.locationManager.distanceFilter = 500; // meters [self.locationManager startUpdatingLocation]; [self.locationManager requestWhenInUseAuthorization]; [self.locationManager requestAlwaysAuthorization]; } self.appleMap.delegate = self; // Map will show current location self.appleMap.showsUserLocation = YES; // Maps' opening spot self.location = [self.locationManager location]; CLLocationCoordinate2D coordinateActual = [self.location coordinate]; // Map's zoom MKCoordinateSpan zoom = MKCoordinateSpanMake(0.010, 0.010); // Create a region MKCoordinateRegion region = MKCoordinateRegionMake(coordinateActual, zoom); // Method which sets exibition method [self.appleMap setRegion:region animated:YES]; //Map's type self.appleMap.mapType = MKMapTypeStandard; } #pragma mark - Location Manager Callbacks -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ [PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) { if (!error) { // Create Object PFObject *offersLocation = [PFObject objectWithClassName:@"Places"]; //Create a point for markers PFGeoPoint *offersPoint = offersLocation[@"places_coordinate"]; // Check current Location NSLog(@"%@", offersPoint); // Create a query for Places of interest near current location PFQuery *query = [PFQuery queryWithClassName:@"Places"]; [query whereKey:@"places_coordinate" nearGeoPoint:geoPoint withinKilometers:5.0]; NSLog(@"Query: %@",query); // Limit the query query.limit = 10; // Store objects in the array NSArray *offersArray = [query findObjects]; NSLog(@"Array: %@",offersArray); if (!error) { for (query in offersArray) { self.annotation = [[MKPointAnnotation alloc] init]; CLLocationCoordinate2D coord = {offersPoint.latitude, offersPoint.longitude}; self.annotation.coordinate = coord ; [self.appleMap addAnnotation:self.annotation]; NSLog(@"Annotation: %@",self.annotation); } } } }]; } #pragma mark - MKMapViewDelegate -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ static NSSsortingng *MapViewAnnotationIdentifier = @"places_coordinate"; MKPinAnnotationView *pinOffers = [[MKPinAnnotationView alloc] initWithAnnotation:self.annotation reuseIdentifier:MapViewAnnotationIdentifier]; pinOffers.pinColor = MKPinAnnotationColorRed; pinOffers.canShowCallout = YES; pinOffers.animatesDrop = YES; return pinOffers; } 

Mon journal affiche toutes les offres à l'intérieur de offersArray, mais je ne trouve pas de moyen de mettre des marqueurs dedans.

J'ai aussi essayé quelques autres sujets, mais je ne l'ai pas vraiment compris:

comment append plusieurs broches au même lat / long

L'ajout d'annotations mapview dans une requête parse renvoie une valeur nulle au hasard

Meilleures salutations,

Ce qui se passait était que ma boucle for n'était pas construite correctement.

Ça devrait être comme ça:

 ... if (!error) { for (PFObject *offerObject in offersArray) { PFGeoPoint *offerPoint = [offerObject objectForKey:@"coordenadas"]; MKPointAnnotation *geoPointAnnotation = [[MKPointAnnotation alloc] init]; geoPointAnnotation.coordinate = CLLocationCoordinate2DMake(offerPoint.latitude, offerPoint.longitude); [self.appleMap addAnnotation:geoPointAnnotation]; NSLog(@"Annotation: %@",geoPointAnnotation); } } ...