0

オブジェクトを取り、いくつかの値を設定するクラスメソッドがあります。これは機能デモの段階なので、実装は後で改善されます。今はこれを機能させたいだけです。

以下のコードでは、districtID 整数が if ステートメントに正常に渡されています。rgb double 配列は、if ステートメントのスコープにはなりません。初期化時に設定された値は、if ステートメント内で設定されることなく、districtPoint.color までずっと行われます。

以下のコードはそのままではコンパイルされません。if ステートメントのスコープ内で rgb 変数を表示する方法を知りたいです。

(注: if ステートメント内で変数を初期化する単純な解決策を試しました。これによりエラーは解消されますが、新しい rgb 変数が if スコープから外れるわけではありません)

// This method populates properties
+(void)setContantPropertiesForID:(DistrictPoint *)districtPoint
{
    int districtID = [districtPoint.districtID intValue];
    double rgb[3] = {0,0,0};

    if (districtID == 1) {
        districtPoint.title = @"District 1";
        rgb = {1.0,0.0,0.0};                    // error is expected expression
    } else if (districtID == 2) {
        districtPoint.title = @"District 1";
        rgb = {0.0,1.0,0.0};
    } else if (districtID == 3) {
        districtPoint.title = @"District 1";
        rgb = {0.0,0.0,1.0};
    } else {
        districtPoint.title = nil;
        rgb = {1.0,1.0,1.0};                    // error condition
    }

    districtPoint.color = [UIColor colorWithRed:rgb[0] green:rgb[1] blue:rgb[2] alpha:0.5];
}
4

1 に答える 1

2

これはifステートメントとは何の関係もありません。中括弧表記を使用して、初期化時にのみ配列の要素を設定できます(実際、コードの前半で行うように)。

于 2013-02-14T02:50:00.293 に答える