我遇到startMonitoringSignificantLocationChanges的问题。如果我为locationManager调用此方法,则locationManager:didUpdateLocations:
方法只调用一次。现在,如果我在模拟器中启动一个驱动器(如所述here - 调试 - >位置 - >高速公路驱动器),则不再调用它。 Apple规定每隔500米甚至每5到15分钟调用一次。我等待,等待并等待没有成功。
这是小代码,我也是Github minimal example。当然也从不调用错误方法。它没有在汽车中的真实设备上进行测试,因为我认为它应该首先在模拟器中工作。我在这里缺少什么?
- (void)viewDidLoad {
[super viewDidLoad];
if(self.locationManager == nil){
self.locationManager = [[CLLocationManager alloc] init];
}
// Set the delegate
self.locationManager.delegate = self;
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startMonitoringSignificantLocationChanges];
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
CLLocation *currentLoc = [locations lastObject];
NSLog(@"New Location: %f/%f, Locations: %lu", currentLoc.coordinate.latitude, currentLoc.coordinate.longitude,(unsigned long)[locations count]);
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
NSLog(@"Loc Error: %@", [error userInfo]);
}
答案 0 :(得分:0)
好吧,我刚从Github下载了自己的最小项目,并尝试使用iPhone 5S模拟器。它有效。之前我只用6S试过它并且它没有用。现在将尝试使用设备6(S),并希望也可以在那里工作..
但也许会在不久的将来帮助某人:)