Xcode 5 didupdatelocations не работает

Я следую этому уроку для создания программы, которая показывает местоположение пользователя. Я уже сказал Xcode смоделировать местоположение для меня, и даже на симуляторе убедился, что оно позволяет моему приложению отслеживать местоположения. Тем не менее, ничего не регистрируется на моей консоли.

Заголовочный файл:

#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

1 ответ

Я не уверен на 100% в ответе, но это то, что я получил.
iOS 7 позволяет получать данные о местоположении только тогда, когда приложение находится на переднем плане. Когда вы пишете свой код в initwithNibNameваше приложение на самом деле не на переднем плане, оно создает элементы управления из файлов XIB и все. Именно поэтому ОС не предоставляет вам обновления местоположения.

Другие вопросы по тегам