У меня есть приложение Mac, и я хотел бы использовать местоположение ядра, однако, когда я не на Wi-Fi, но подключен с помощью кабеля Ethernet, местоположение ядра (CLLocationManager) сообщает, что операция не может быть завершена.
Точное сообщение об ошибке:
The operation couldn't be completed. (kCLErrorDomain error 0.)
Если я всегда подключен к одному и тому же маршрутизатору (т. Е. Wi-Fi или Ethernet-кабель), почему CLLocationManager работает только для Wi-Fi, а не для Ethernetсоединение?
Буду признателен за любые предложения.
Спасибо.
Редактировать:
Вот код.
Я определяюмой диспетчер местоположений в качестве переменной экземпляра, такой как
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:ICMinimumUpdateDistance];
Затем я отслеживаю метод делегата менеджера местоположений, например, так:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
// Filter out points before the last update
NSTimeInterval timeSinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate:dateOfLastUpdate];
if (timeSinceLastUpdate > 0)
{
//Do stuff
}
}
Я также проверяю ошибки, используя метод делегата
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"Location Error:%@", [error localizedDescription]);
}
В приведенном выше коде менеджер местоположений обновляется с недопустимым newLocation (неправильная отметка времени), а затем менеджер местоположений вызывает метод ошибки делегата.