iPhone CoreLocation Framework не работает на XCode SDK 3.2.4 с Simulator 4.1 и XCode SDK 3.2.3 с Simulator 4.0.X и устройством iTouch с OS 4.1 - PullRequest
1 голос
/ 01 октября 2010

Столкнулся с серьезной проблемой.

Реализация CLLocationMangerDelegate и использование этого кода:

- (void)locationManager:(CLLocationManager *)manager  didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation  

но метод

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
 NSLog(@"%@",[error description]);
}

Когда он срабатывает, я получаю:

Ошибка домена = код kCLErrorDomain = 0 «Операция не может быть завершена (ошибка 0 kCLErrorDomain.)»

Я тестирую это на устройстве iTouch с ОС 4.1 с WIFI. Что также приводит к той же ошибке в консоли, что и упомянутая выше.

Кто-нибудь сталкивался с этим сценарием или кто-нибудь может мне помочь с этой проблемой. Есть ли способ определить, работает ли CLLocationManager на устройстве или нет.

Я нашел несколько похожих обсуждений по этой ссылке, но пока нет решений!

http://www.iphonedevsdk.com/forum/iphone-sdk-development/52267-cllocationmanager-not-getting-called-iphone-os-4-0-a.html

Получил некоторый намек от Ошибка диспетчера местоположений: (ошибка 0 KCLErrorDomain)

Может быть проблема с WiFi или интернетом на iTouch. Я не могу понять, почему он не работает на симуляторе, поскольку он будет работать с симулятором iPhone 3.1.3, по крайней мере по умолчанию он будет показывать Infinite Loop, CA (адрес головного офиса Apple). Может быть, этот адрес по умолчанию полностью удален?

Кто-нибудь пользовался поддержкой разработчиков, чтобы спросить Apple об этой проблеме или документ с полной структурой CL для симулятора и других устройств?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 октября 2010

Вы сказали, что устройство iTouch. Я полагаю, вы имеете в виду устройство iPod Touch, верно?

Устройство iPod Touch не имеет чипа GPS, поэтому вы не можете определить местоположение с помощью GPS.

Местоположение по умолчанию не было удалено для симулятора iPhone 3.1.3. Изменен код местоположения симулятора для симулятора iOS версии 3.2 и выше.

Есть одна вещь, которую вы можете попробовать, хотя

Выделение вашего CLLocationManager - это еще один метод, который не является вашим viewDidLoad: метод. Пользователь должен дать приложению разрешение на получение местоположения, и всплывающее окно может стать недоступным, если вы поместите код в viewDidLoad: я рекомендую поместить код в viewDidAppear.

0 голосов
/ 01 октября 2010

Мое понимание того, как это работает в симуляторе, заключается в том, что он реверсирует геокодирование вашего Wi-Fi-соединения, и afaik, который недоступен при касании

...