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 и все. Именно поэтому ОС не предоставляет вам обновления местоположения.