私のアプリはシミュレーターで完全に動作し、すべて正常に動作します。しかし今、iPhone でテストしたいと思っていたのですが、GPS 機能が動作しないことがわかりました。
これが私のコードです。
[super viewDidLoad];
//eigener Standort
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
eigLat = newLocation.coordinate.latitude;
eigLon = newLocation.coordinate.longitude;
eigLatString = [NSString stringWithFormat:@"%f", eigLat];
eigLonString = [NSString stringWithFormat:@"%f", eigLon];
}
そして今まではすべて順調です。NSLog を使用すると、正しい座標が得られます。
しかし、ここで自分の座標を使用したい:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
news = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:NULL];
for (x=0; x<[news count]; x++)
{
//Berechnung der Entfernung
erdradius = 6371.1;
//Koordinaten von Datenbank in String schreiben
NSString *latitude = [[news objectAtIndex:x] objectForKey:@"Latitude"];
NSString *longitude = [[news objectAtIndex:x] objectForKey:@"Longitude"];
entfernung = 0;
double lat1 = eigLat; //eigener Standort Latitude
double long1 = eigLon; //eigener Standort Longitude
double lat2 = [latitude doubleValue]; //Standort Heurigen Latitude
double long2 = [longitude doubleValue]; //Standort Heurigen Longitude
そして、lat1とlat2で毎回0になります。ただし、iPhone でアプリを実行した場合に限ります。シミュレーターでは問題なく動作します。
なぜこれができるのか誰かが知っていますか?