2013-12-17 53 views
1

我正面临一个奇怪的问题。我正在使用 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations来获取设备位置。它在simulator (iOS 6 and iOS 7)iPhone 4S running iOS 6.1.3上工作正常。当我将iPhone 4 running iOS 7连接到系统并安装应用程序时,它也工作正常,但只要我拔下设备并重新运行应用程序,此方法不会被调用,并且我不能获取位置。我怎样才能克服这个问题?didUpdateLocations:在运行iOS 7的设备上未调用的方法

回答

-1

你是如何设置位置管理器的?

你有没有在你的界面:

@interface ViewController : UIViewController <CLLocationManagerDelegate> { 
    @property (strong, nonatomic) CLLocationManager *locationManager; 
} 

然后在viewDidLoad中实现:

// setup location manager 
    if ([CLLocationManager locationServicesEnabled]) { 
     _locationManager = [[CLLocationManager alloc] init]; 

     _locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
     _locationManager.delegate = self; 

     [_locationManager startUpdatingLocation]; 
    } 

而且你需要实现委托:

locationManager:didUpdateLocations: 

注意:在IOS 7

locationManager:didUpdateToLocation:fromLocation 

已弃用。 Apple link to CLLocationManagerDelegate

+0

'headingAvailable'自从iOS4以来就被弃用了,我正在使用'locationManager:didUpdateLocations:' –

+0

a..sorry。 headingAvailable不适合(复制粘贴错误)。但无论如何。 headingAvailable属性已被弃用。这是一个建议+(BOOL)headingAvailable(我将其更改为locationServicesEnabled)的调用。有趣的是,它不起作用。您是否尝试更改为_locationbManager.distanceFilter = kCLDistanceFilterNone; ?应该通知代表所有动作。 – y0gie007

+0

试过了,没有工作。 :( –

相关问题