2010-06-20 10 views

Antwort

176

Der KVC Ansatz sieht wie folgt aus:

int max = [[numbers valueForKeyPath:@"@max.intValue"] intValue]; 

oder

NSNumber * max = [numbers valueForKeyPath:@"@max.intValue"]; 

mit Zahlen als NSArray

+1

Danke, ich habe versucht, valueForKeyPath zu verwenden, aber nicht .intValue, so dass es nicht funktionierte. –

+0

Was ist, wenn einige NSArray-Elemente NSNulls sind? http://stackoverflow.com/questions/4499109/how-to-tell-nsarray-valueforkeypath-to-ignore-nsnulls – HiveHicks

+14

In der Tat wäre es besser zu verwenden @ @ max.self "'. Da '@ max'' compare: 'verwendet, benötigt es tatsächliche Objekte: mit' intValue' verlieren Sie nicht nur die Genauigkeit, sondern 'valueForKeyPath:' muss NSNumbers neu erstellen. Als Bonus funktioniert es auch mit 'NSString' oder allem, was 'compare:' implementiert. –

1
NSArray * test= @[@3, @67, @23, @67, @67]; 
int maximumValue = [[test valueForKeyPath: @"@max.self"] intValue]; 
NSLog(@" MaximumValue = %d", maximumValue); 

// Maximum = 67 
0

Hoffnung wird Ihnen hilfreich.

NSArray * arrayOfBarGraphValues = @[@65, @45, @47 ,@87 , @46, @66 ,@77 ,@47 ,@79 ,@78 ,@87 ,@78 ,@87 ]; 
int maxOfBarGraphValues = [[arrayOfBarGraphValues valueForKeyPath: @"@max.self"] intValue]; 
NSLog(@" MaximumValue Of BarGraph = %d", maxOfBarGraphValues);