@ jgervin: хорошая новость в том, что я попробовал ваш код в моем проекте, он работает без ошибок вообще ...
это отчет в моей консоли отладчика:
[2745: 207] начало CLLocationDegrees в calcDiff в UsersPosts
[2745: 207] законченные CLLocationDegrees в calcDiff в UsersPosts
[2745: 207] начало местоположения1 в calcDiff в UsersPosts
[2745: 207] законченные CLLocationDegrees в calcDiff в UsersPosts
[2745: 207] начало выпуска местоположения в calcDiff в UsersPosts
[2745: 207] Законченный релиз местоположения в calcDiff в UsersPosts
[2745: 207] _ _: 79893040
Я только что добавил ваш код:
-(double)calcDiffDistance:(double )postLat withPostLng:(double )lon1 {
NSLog(@"beginning CLLocationDegrees in calcDiff in UsersPosts");
// CLLocationDegrees lat = self.lastKnownLocation.coordinate.latitude; // not used
// CLLocationDegrees lng = self.lastKnownLocation.coordinate.longitude; // not used
NSLog(@"finsished CLLocationDegrees in calcDiff in UsersPosts");
NSLog(@"beginning location1 in calcDiff in UsersPosts");
CLLocation *location1 = [[CLLocation alloc] initWithLatitude:postLat longitude:lon1];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:-44.4343 longitude:-34.977];
NSLog(@"finsished CLLocationDegrees in calcDiff in UsersPosts");
NSLog(@"beginning location release in calcDiff in UsersPosts");
double target = [location1 distanceFromLocation:location2];
//int myInt = (int)ceil(target);
target = target/1609.334;
[location1 release];
[location2 release];
NSLog(@"finsished location release in calcDiff in UsersPosts");
return target;
}
вызывая это откуда-то из моего кода:
NSString *latString = [NSString stringWithFormat:@"%@", @"-44.4349773"];
NSString *lngString = [NSString stringWithFormat:@"%@", @"-33.2779787"];
double latDouble = [latString doubleValue];
double lngDouble = [lngString doubleValue];
double roundDouble = 0; // not used
NSNumber *mylngDoubleNumber; // not used
if(latDouble == 0 && lngDouble == 0) {
NSNumber *mylngDoubleNumber = 0; // not used
}else{
double tempDble = [self calcDiffDistance:latDouble withPostLng:lngDouble ]; //
NSNumber *mylngDoubleNumber = [NSNumber numberWithDouble:tempDble];
NSLog(@"____:%d", mylngDoubleNumber);
}
с этим в .h файле:
#include <stdlib.h> //
#import <CoreLocation/CoreLocation.h> //
и
-(double)calcDiffDistance:(double )postLat withPostLng:(double )lon1;
поэтому ваша ошибка компилятора - поиск в другом месте, а не ошибка метода объявления
плохо то, что я не знаю где ...
и ... ваш метод каждый раз возвращает разные (неожиданные) значения ... как здесь:
_ _ : 100906736
_ _ : 100786912
_ _ : 79891648
...
пс
Полагаю, вы импортировали правильную платформу "CoreLocation.framework" в свой проект, конечно ...