2010-06-18 3 views
0

по какой-то причине мой код заставляет мою программу сбой. кто-нибудь знает, почему и как его исправить?iphone симулятор сбой при попытке получить доступ к местоположению пользователя

NSLog(@"here"); 
CLLocation *location = [locationManager location]; 
[mapView removeAnnotations:mapView.annotations]; 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
CLLocationCoordinate2D workingCoordinate = [location coordinate]; 
NSLog(@" this is %@", workingCoordinate.latitude); 

он попадает в первый NSLog, но где-то между первым и вторым он выходит из строя. Я предполагаю, что это связано с линией местоположения CLLocation *.

ответ

2

CLLocationCoordinate2D - это структура, содержащая два нецелевых поля типа CLLocationDegrees. %@, переданный в NSLog, попытается интерпретировать значение в качестве ссылки на объект и что вызывает сбой.

Попытка: NSLog (@ "это% d", workingCoordinate.latitude);

+1

Это позволило программе работать, но это дало широту, которая невозможна: 14212. На моей карте, хотя она добавляет координаты этой аннотации в Lat 0 long 0 –

+0

Это потому, что широта и долгота двойные, поэтому вы можете 't использовать% d, вы бы использовали спецификатор формата% f. Проверьте [Определение CLLocationDegrees в документах] (http://developer.apple.com/iphone/library/documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html) – progrmr

+0

Duh. Конечно. Благодарю. – bbum

Смежные вопросы