Je vérifiais this question qui a ce codeCollections extensibles en Objective-C?
- (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];
}
et je pensais, «c'est terrible, si vous avez plus de trois couleurs? » Je sais, vous n'avez pas, mais que faire si vous avez eu count-1 couleurs et un alpha? Supposons que vous ayez [rgbArray count]
(est-ce que cela fonctionne même pour un tableau réel?) En utilisant uniquement l'objectif-C, comment normalement retourner un objet NSArray de n
?
J'ai juste essayé de m'en sortir mais je n'ai toujours pas les côtelettes pour faire ça dans l'objectif-C. Voici ma tentative échouée:
- (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];
}
Très cool. Maintenant que je vois votre code, je vois le manque de précision dans ma question. Je vais tester certains de ces trucs et commenter si j'ai des doutes. Merci! –