"Invalid initializer" error when compiling
I use this code
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application lau开发者_StackOverflow中文版nch.
[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 returns id
, which is not valid for initializing a CLLocationCoordinate2D
struct, and give that error.
精彩评论