2014-09-29 2 views
1

привет Я новичок в объективных C и у меня есть трудное время с массивом индексациейNSMutableDictionary взяв в качестве значения NSArray

Мне нужно создать NSMutableDictionary, который содержит 5 цветов RGB.
Каждый цвет будет содержать 3 компонента, которые генерируются случайным образом, а значение альфа-диапазона будет установлено на 1.0.
Это должно быть внутри цикла for.

до конца мне нужно иметь

  1. ключ: first_col _________ значение: 0,13, 0,75, 0,91, 1,0
  2. ключ: second_col ______ значение: 0,25, 0,06, 0,48, 1,0
  3. ключ: third_col ________ значение: 0,86, 0,12, 0,55, 1,0
  4. ключ: _______________ значение:
  5. ключ: _______________ значение:

спасибо

+1

Не было бы легче вместо этого иметь массив с UIColor? – Pochi

+2

Что вы пробовали? С чем конкретно связана проблема? – JoeFryer

ответ

0

попробовать этот ответ ..

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     NSMutableDictionary *dictonary; 
     NSMutableArray *temp=[NSMutableArray array]; 
     for (int i=0; i<5; i++) 
     { 
      dictonary=[NSMutableDictionary dictionary]; 
      [dictonary setObject:[self getColor:i] forKey:[NSString stringWithFormat:@"color%d",i]]; 
      [temp addObject:dictonary]; 
     } 
     NSLog(@"%@",temp); 

    } 
    -(UIColor *)getColor:(NSInteger)index 
    { 
     UIColor *color; 
     color=[self returnColor:index ]; 
     return color; 
    } 
    -(UIColor *)returnColor:(int)passedIndex 
    { 


     CGFloat red = arc4random()%255; 
     CGFloat green =arc4random()%255; 
     CGFloat blue = arc4random()%255; 

     UIColor *color; 
     switch (passedIndex) { 
      case 0: 
       color=[UIColor colorWithRed:(red/255) green:(green/255) blue:(blue/255) alpha:1.0]; 
       break; 
      case 1: 
       color=[UIColor colorWithRed:(red/255) green:(green/255) blue:(blue/255) alpha:1.0]; 
       break; 
      case 2: 
       color=[UIColor colorWithRed:(red/255) green:(green/255) blue:(blue/255) alpha:1.0]; 
       break; 
      case 3: 
       color=[UIColor colorWithRed:(red/255) green:(green/255) blue:(blue/255) alpha:1.0]; 
       break; 
      case 4: 
       color=[UIColor colorWithRed:(red/255) green:(green/255) blue:(blue/255) alpha:1.0]; 
       break; 
      case 5: 
       color=[UIColor colorWithRed:(red/255) green:(green/255) blue:(blue/255) alpha:1.0]; 
       break; 
      default: 
       break; 
     } 
     return color; 
    } 
+0

спасибо @karthikeyan – Vaki

+0

, если этот ответ поможет вам, отметьте как правильный ответ – karthikeyan

+0

я свежее :). еще раз спасибо – Vaki

0

нравится этот

NSDictionary * colorsDictionary = [[NSDictionary alloc]initWithObjectsAndKeys: 
          [UIColor colorWithRed:(160/255.0) green:(97/255.0) blue:(5/255.0) alpha:1.0],@"color1", 
          [UIColor colorWithRed:(260/255.0) green:(97/255.0) blue:(105/255.0) alpha:1.0],@"color2", 
          [UIColor colorWithRed:(106/255.0) green:(97/255.0) blue:(205/255.0) alpha:1.0],@"color2", 
          [UIColor colorWithRed:(10/255.0) green:(97/255.0) blue:(55/255.0) alpha:1.0],@"color3", 
          nil]; 
+0

спасибо @iRaki. Это прекрасно работает. В случае, если я хочу добавить в словарь массив * col_components (для общего случая), как это должно быть [CGFloat col_components], @ "color1" – Vaki