Я проверял этот вопрос , который имеет этот код
- (NSArray *) percentagesRGBArray:(float[]) rgbArray
{
NSNumber *red = [NSNumber numberWithFloat:rgbArray[0] / 255];
NSNumber *green = [NSNumber numberWithFloat:rgbArray[1] / 255];
NSNumber *blue = [NSNumber numberWithFloat:rgbArray[2] / 255];
NSNumber *alpha = [NSNumber numberWithFloat:rgbArray[3]];
return [NSArray arrayWithObjects:red, green, blue, alpha, nil];
}
, и я подумал: "Это ужасно, что если у вас больше трех цветов?"Я знаю, вы не знаете, но что, если у вас были цвета count-1 и альфа? Допустим, у вас было [rgbArray count]
(подсчет даже работает для реального массива?) Использование только объективногоC, как обычно вы возвращали бы NSArray из n
объектов?
Я просто пытался разобраться с этим, но у меня все еще нет возможности сделать это в target-C.Вот моя неудачная попытка:
- (NSArray *) what:(float[]) rgbArray
{
int len = sizeof(rgbArray)/sizeof(float); // made up syntax
NSLog(@"length is wrong dummy %d", len);
NSNumber *retVal[len];
for (int i=0;i<(len-1);i++) {
NSNumber *red = [NSNumber numberWithFloat:rgbArray[0] / 255];
retVal[i] = red;
[red release];
}
retVal[len-1] = [NSNumber numberWithFloat:rgbArray[len-1]];
return [NSArray arrayWithObjects:retVal count:len];
}