Se si voleva ottenere semplicemente il min e max raddoppia:
NSNumber* min = [array valueForKeyPath:@"@min.self"];
NSNumber* max = [array valueForKeyPath:@"@max.self"];
Se si voleva ordinarli semplicemente:
// the array is mutable, so we can sort inline
[array sortUsingSelector:@selector(compare:)];
La classe NSNumber
ordinerà ben semplicemente usando compare:
, ma se hai bisogno di fare un ordinamento più complicato, puoi usare il metodo -sortUsingComparator:
che accetta un blocco t o fai lo smistamento. Esistono anche metodi su NSArray
che restituiscono i nuovi array ordinati, invece di modificare l'array corrente. Vedere la documentazione per NSArray e NSMutableArray per ulteriori informazioni.
fonte
2012-02-06 16:41:53
Che cosa significa la valueForKeyPath funzione? Sono stato alla ricerca di documentazione su di esso, ma non riesco a trovare nulla in NSArray o NSMutableArray. Voglio sapere qual è la stringa che gli viene passata e quale dovrebbe essere il formato di essa. –
@MikeKhan Non è un metodo definito su 'NSArray'. È definito nel protocollo 'NSKeyValueCoding' che implementa' NSObject'. È possibile trovare la documentazione qui: https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/Reference/Reference.html#//apple_ref/occ/cat/NSKeyValueCoding –
Apple usa sempre @ nella stringa letterale per Keys? – DevilInDisguise