Xcode 5 didupdatelocations无法正常工作

时间:2013-11-03 00:18:39

标签: ios objective-c ios7 xcode5 xcode5.0.1

我按照本教程创建了一个显示用户位置的程序。我告诉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 个答案:

答案 0 :(得分:1)

我不是100%肯定答案,但这就是我所拥有的 iOS 7仅在app位于前台时才允许进行位置提取。 当您在initwithNibName中编写代码时,您的应用实际上并不在前台,它正在从xib文件和所有文件创建控件。这就是为什么操作系统没有为您提供位置更新。