MKMapView didUpdateUserLocation nicht genannt

Ich bin nach dem big nerd ranch-guide buchen und habe meine modifizierten app-delegate.h wie folgt Aussehen:

   #import <UIKit/UIKit.h>
   #import <CoreLocation/CoreLocation.h>
   #import <MapKit/MapKit.h>
   @interface WhereamiAppDelegate : NSObject <UIApplicationDelegate,CLLocationManagerDelegate, MKMapViewDelegate>
   {   
       IBOutlet UITextField *locationTitleField;
       IBOutlet UIActivityIndicatorView *activityIndicator;
       IBOutlet MKMapView *worldView;
       CLLocationManager *locationManager;
   }
  @property (nonatomic, retain) IBOutlet  UIWindow *window;
  @property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
  @property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
  @property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
  - (void)saveContext;
  - (NSURL *)applicationDocumentsDirectory;
 @end

Den .m sieht so aus:

 #import "WhereamiAppDelegate.h"
 @implementation WhereamiAppDelegate
 @synthesize window = _window;
 @synthesize managedObjectContext = __managedObjectContext;
 @synthesize managedObjectModel = __managedObjectModel;
 @synthesize persistentStoreCoordinator = __persistentStoreCoordinator;

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

     CLLocationCoordinate2D loc = [userLocation coordinate];
     MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 250, 250);
     [worldView setRegion:region animated:YES];
     NSLog(@"didUpdateUserLocation is called");
  }
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
     //Override point for customization after application launch.

//Create location manager object
     locationManager = [[CLLocationManager alloc] init];
//There will be a warning from this line of code; ignore it for now
     [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 manager to start looking for its location immediately
//[locationManager startUpdatingLocation];
     [worldView setShowsUserLocation:YES];
//This line may say self.window, don't worry about that
     [self.window makeKeyAndVisible];
     return YES;
 }
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
 {
      NSLog(@"%@", newLocation);
 }
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
      NSLog(@"Could not find location: %@", error);
 }

Wenn ich die app öffnen, es sollte ZOOM in meine Lage. Aber es muss nicht Zoomen, so habe ich ein NSLog in die didUpdateUserLocation um zu sehen, ob es genannt wurde. Aber es wurde nie gedruckt, also es war nicht genannt. Wie kann ich dieses Problem beheben?

  • HINWEIS: ich BIN MIT XCODE 4.1 und 4.3 SIMULATOR
  • never mind... ich fand heraus, es war, weil ich vergessen habe zu setzen delegieren!
  • naja, eigentlich habe ich nicht vergessen... das BUCH HAT~!
InformationsquelleAutor user973985 | 2011-10-04
Schreibe einen Kommentar