Я следую этому руководству для создания программы, которая показывает местоположение пользователя. Я уже сказал Xcode, чтобы имитировать место для меня уже, и даже на симуляторе убедился, что это позволяет моему приложению отслеживать местоположения. Однако на мою консоль ничего не записывается.Xcode 5 didupdatelocations не работает
Заголовочный файл:
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface WhereamiViewController : UIViewController <CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
@end
И главный файл:
#import "WhereamiViewController.h"
@implementation WhereamiViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager setPausesLocationUpdatesAutomatically:NO];
[locationManager startUpdatingLocation];
}
return self;
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
{
NSLog(@"%@", [locations lastObject]);
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
{
NSLog(@"Error: %@", error);
}
@end
возможно дубликат [CLLocationManager не отправляет местоположения методу didUpdateLocations] (http://stackoverflow.com/questions/15656889/cllocationmanager-does-not-send-location-to-the-didupdatelocations-method) –
@ josh Это работает, если я помещаю свой код в viewDidLoad, но не в его initWithNibName. Почему это? Первоначально initWithNibName даже не вызывался, поэтому я установил его в своем AppDelegate.m 'WhereamiViewController * wvc = [[WhereamiViewController alloc] initWithNibName: @« WhereamiViewController »bundle: nil];' – Thomas