2016-12-30 35 views
-1

编译器标记我的三元运算符,并表示它预期]而不是kGraySquare。 我做错了什么?使用宏方法调用三元编译器错误

#define kGreenSquare [UIImage [email protected]"distance_on"] 
#define kGraySquare [UIImage [email protected]"distance_off"] 

@implementation DistanceIndicatorView 
{ 
    NSMutableArray<UIImageView*>*items; 
} 


- (void)drawRect:(CGRect)rect { 
    items = [[NSMutableArray<UIImageView*> alloc] initWithCapacity:10]; 
    NSInteger offset = 0; 
    for (int i = 0; i<10; i++){ 
     [items addObject:[[UIImageView alloc] initWithFrame:CGRectMake(offset, 0, 8, 8)]]; 
     [items[i] setImage:_distance<i?kGreenSquare:kGraySquare]; 
     offset += 10; 
    } 

} 
+1

你错过了':'尝试[UIImage imageNamed:@“distance_on”] – iYoung

+0

这么愚蠢的错误!谢谢你,IYoung! –

+0

如果回答您的问题,您能否将答案标记为已接受? – iYoung

回答

4

你错过了:

添加冒号(:) &更新像下面

#define kGreenSquare [UIImage imageNamed:@"distance_on"] 
#define kGraySquare [UIImage imageNamed:@"distance_off"] 

这将正常工作。