我按照本教程创建了一个显示用户位置的程序。我告诉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
答案 0 :(得分:1)
我不是100%肯定答案,但这就是我所拥有的
iOS 7仅在app位于前台时才允许进行位置提取。
当您在initwithNibName
中编写代码时,您的应用实际上并不在前台,它正在从xib文件和所有文件创建控件。这就是为什么操作系统没有为您提供位置更新。