使用UIColorFromRGB时的预期表达式

时间:2011-10-22 05:41:59

标签: objective-c xcode uicolor

我已将标准UIColorFromRGB定义为:

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0];

当我尝试将其用作:

if (selectedRow == indexPath.row)
    cell.value.textColor = UIColorFromRGB(0x00C5FE);
else
    cell.value.textColor = [UIColor blackColor];

但我收到错误“预期表达”。
如果我将其更改为:

,它会起作用
if (self.selectedRow == indexPath.row) {
    cell.value.textColor = UIColorFromRGB(0x00C5FE);
}
else
    cell.value.textColor = [UIColor blackColor];

我想知道为什么会这样?

1 个答案:

答案 0 :(得分:4)

您的宏有一个尾随分号,因此您的第一段代码扩展为:

if (selectedRow == indexPath.row)
    cell.value.textColor = [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0];;
else
    cell.value.textColor = [UIColor blackColor];

注意第2行的第二个分号。

从宏的末尾删除分号。