我被檢查出this question具有這種代碼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];
}
,我想,「太可怕了,如果您有什麼超過三種顏色?」我知道,你不知道,但是如果你確實有count-1顏色和alpha?假設你有[rgbArray count]
(甚至可以計算真實數組的工作嗎?)僅使用objective-C,你會返回一個NSArray對象的正常方式是什麼?
我只是試圖解決它,但我仍然沒有在Objective-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];
}
非常酷。現在我看到了你的代碼,我發現我的問題缺乏精確性。如果我有任何疑問,我會測試一些這些東西,並回複評論。謝謝! – 2010-03-04 01:04:29