I use this code
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
// position is a number between 0 and 1, where 0 gives the start position, and 1 gives the end position
CLLocationCoordinate2D startPoint = CLLocationCoordinate2DMake(37.9,-122.5);
CLLocationCoordinate2D endPoint = CLLocationCoordinate2DMake(37.188022,-122.39979);
for (int i = 1; i < 5; i++) {
float position = i / 5.0;
CLLocationCoordinate2D middlePosition = [self pointBetweenStartPoint:startPoint endPoint:endPoint position:position];
NSLog("%f, %f", middlePosition.latitude, middlePosition.longitude);
}
return YES;
}
- (CLLocationCoordinate2D)pointBetweenStartPoint:(CLLocationCoordinate2D)startPoint endPoint:(CLLocationCoordinate2D)endPoint position:(float)position {
CLLocationDegrees latSpan = endPoint.latitude - startPoint.latitude;
CLLocationDegrees longSpan = endPoint.longitude - startPoint.longitude;
CLLocationCoordinate2D ret = CLLocationCoordinate2DMake(startPoint.latitude + latSpan*position,
startPoint.longitude + longSpan*position);
return ret;
}
and getting this error: invalid initializer in this line
CLLocationCoordinate2D middlePosition = [self pointBetweenStartPoint:startPoint endPoint:endPoint position:position];
How remove it?
Is there a forward declaration of
pointBetweenStartPoint:endPoint:position:visible (e.g. from an imported header file) before the block of code you quoted? If not, the compiler will assume the method returnsid, which is not valid for initializing aCLLocationCoordinate2Dstruct, and give that error.