Problems with MKMapView

Discussion in 'iOS Programming' started by Renegade89, Feb 1, 2011.

  1. Renegade89 macrumors member

    Jul 11, 2008
    Nevada, USA
    Hello, I have a pretty simple app that displays the users current location on a map, but unfortunately i'm having some issues and was hoping someone here could help, since my search results were fruitless.

    I call [myMapView setShowsUserLocation:YES]; in the application:didFinishLaunchingWithOptions: methods in myAppDelegate.m file, which successfully puts the little blue dot of my map of my location (well, Apple HQ, since I'm using the simulator.)

    I have also implemented the mapView:didAddAnnotationViews: method, but unfortunately it never runs, which it should after it adds the blue dot annotation to my map. Any ideas? I will post the relevant code below. Thanks!

    #import <UIKit/UIKit.h>
    #import <CoreLocation/CoreLocation.h>
    #import <MapKit/MapKit.h>
    @interface myAppDelegate : NSObject
    	<UIApplicationDelegate, CLLocationManagerDelegate, MKMapViewDelegate>
        UIWindow *window;
    	CLLocationManager *locationManager;
    	IBOutlet MKMapView *myMapView;
    	// Other irrelevant stuff is here too
    @property (nonatomic, retain) IBOutlet UIWindow *window;
    #import "myAppDelegate.h"
    @implementation myAppDelegate
    @synthesize window;
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
        // Create location manager object
    	locationManager = [[CLLocationManager alloc] init];
    	// Make this instance of myAppDelegate the delegate
    	// it will send its messages to our WhereamiAppDelegate
    	[locationManager setDelegate:self];
    	// We want all results from the location manager
    	[locationManager setDistanceFilter:kCLDistanceFilterNone];
    	// And we want it to be as accurate as possible
    	// regardless of how much time/power it takes
    	[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    	// Tell our mapView to show the location on map
    	[myMapView setShowsUserLocation:YES];
        [window makeKeyAndVisible];
        return YES;
    - (void)locationManager:(CLLocationManager *)manager 
        didUpdateToLocation:(CLLocation *)newLocation 
               fromLocation:(CLLocation *)oldLocation
        NSLog(@"%@", newLocation);
        NSLog(@"%@", oldLocation);    
    - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
    	NSLog(@"Could not find location: %@", error);
    - (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
    	NSLog(@"mapView:didAddAnnotationViews works!");
    	// This doesn't run :(
    //Other methods...
  2. Renegade89 thread starter macrumors member

    Jul 11, 2008
    Nevada, USA
    I figured out the problem. Apparently the blue dot with the current location isn't considered an annotation, which is odd. I implemented the following method and got things to work:

    - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

Share This Page