0

我有一个类方法,它应该接受一个对象并在适当的位置填充一些值。这是在功能演示阶段,所以以后实现会更好。现在我只是想让这个工作。

在下面的代码中, DistrictID 整数已成功传递给 if 语句。rgb 双精度数组不会进入 if 语句范围。初始化时设置的值一直到 DistrictPoint.color,而无需在 if 语句中设置。

下面的代码不会按原样编译。我想知道如何让 rgb 变量在 if 语句范围内可见。

(注意:我尝试了在 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 回答