2011-02-28 4 views
1

4 색을 정의했습니다.4 색 중 1이 오류를 반환합니다.

@interface Global : NSObject { 

    UIColor *_EnemyColor; 
    UIColor *_EnemyColor2; 
    UIColor *_TeamColor; 
    UIColor *_TeamColor2; 

} 

@property (nonatomic, retain) UIColor *EnemyColor; 
@property (nonatomic, retain) UIColor *EnemyColor2; 
@property (nonatomic, retain) UIColor *TeamColor; 
@property (nonatomic, retain) UIColor *TeamColor2; 

@end 

@synthesize EnemyColor = _EnemyColor; 
@synthesize EnemyColor2 = _EnemyColor2; 
@synthesize TeamColor = _TeamColor; 
@synthesize TeamColor2 = _TeamColor2; 

그런 다음 init 메소드에서, 나는 변수에 약간의 색상을 설정하십시오.

- (id)init { 
if (self = [super init]) { 
    //******************************************************************* 
    _TeamColor = [UIColor colorWithRed:0.70196078 green:0.70196078 blue:0.70196078 alpha:1.0]; 
    //Everything works, if this line is commented out 
    _TeamColor2 = [UIColor colorWithRed:0.82352941 green:0.81960784 blue:0.83921569 alpha:1.0]; 
    switch (arc4random() % 4) { 
     case 0: 
      _EnemyColor = [UIColor colorWithRed:0.50196078 green:0.47843137 blue:0.41568627 alpha:1]; 
      _EnemyColor2 = [UIColor colorWithRed:0.63529412 green:0.57647059 blue:0.44705882 alpha:1]; 
      break; 
     case 1: 
      _EnemyColor = [UIColor colorWithRed:0.72156863 green:0.59607843 blue:0.37254902 alpha:1]; 
      _EnemyColor2 = [UIColor colorWithRed:0.81568627 green:0.73333333 blue:0.51764706 alpha:1]; 
      break; 
     case 2: 
      _EnemyColor = [UIColor colorWithRed:0.75686275 green:0.47843137 blue:0.23529412 alpha:1]; 
      _EnemyColor2 = [UIColor colorWithRed:0.85098039 green:0.56470588 blue:0.35686275 alpha:1]; 
      break; 
     case 3: 
      _EnemyColor = [UIColor colorWithRed:0.45882353 green:0.6 blue:0.70196078 alpha:1]; 
      _EnemyColor2 = [UIColor colorWithRed:0.57254902 green:0.65882353 blue:0.74117647 alpha:1]; 
      break; 
    } 

오전 데 문제는 _teamColor2가 colorWithRed를 사용하여 설정되어있는 경우 프로그램은 실패 할 것입니다 : 녹색 : 청색 : 알파 :. 할당이 해제 된 경우 0x5f4af80 에 보낸 메시지 : [UIDeviceRGBColor 설정] - 내가 점점 오전 오류가

입니다. 대신 redColor를 사용할 수 있습니다. 4 명 중 1 명만 제대로 작동하지 않는 이유가 있습니까?

답변

6

아무 것도 보유되지 않아서 작동하지 않아야합니다 ([UIColor colorWithRed:green:blue:alpha:]은 자동 반복 인스턴스를 반환 함). 그래서 대신 self.TeamColor, self.TeamColor2에 할당하려고합니다.

관련 문제