2011-08-16 22 views
0

をコンパイルするとき、私はこのコード「無効な初期化」エラー

- (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; 
} 

と、このエラーを取得を使用できますか?

答えて

2

あなたが引用したコードブロックの前に、pointBetweenStartPoint:endPoint:position:の前方宣言が表示されていますか(たとえば、インポートされたヘッダーファイルから)そうでない場合、コンパイラはidを返します。これはCLLocationCoordinate2D構造体の初期化には無効であり、そのエラーを返します。

関連する問題