【发布时间】:2013-10-23 23:30:44
【问题描述】:
我有一个非常简单的应用程序示例,它初始化和更新用户位置。在设备上,它每秒左右成功抛出另一个回调位置,但是在设备(运行 iOS7 的 iPhone)上调用该方法一次,然后神秘地停止。 .
//Setup Location Manager in ViewDidLoad
locationManager = [[CLLocationManager alloc] init];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager setDelegate:self];
[locationManager startUpdatingLocation];
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"location services not turned on");
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
NSLog(@"loactions %@", locations);
}
-(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"new location %f, and old %f", newLocation.coordinate.latitude, newLocation.coordinate.longitude);
}
在 iOS6 中,此应用运行良好,并不断更新设备位置...自 iOS7 以来发生了什么变化?
【问题讨论】:
-
didUpdateLocations 方法是否触发?
-
它的触发但只有一次......
-
你在这个方法中是否调用了stopUpdatingLocation?
-
是的,我似乎通过将 DesiredAccuracy 更改为 BestForNavigation 来解决问题...
-
可能这不是解决方案,但委托方法 locationManager:didUpdateToLocation:fromLocation: 自 ios6 以来已弃用,如果您未部署在低于 ios6 的设备上,则不需要。
标签: objective-c ios7 core-location cllocationmanager