通过自定义方法对NSString对象进行排序
我将如何去通过自定义方法对NSString对象进行排序。例如,我有一个方法通过自定义方法对NSString对象进行排序
-(int)calculateValue:(NSString *)aString
我想排序数组降序的基础上从这个方法返回的值。因此,例如,我有一个数组
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"Apple", @"Bee", @"Super", nil];
现在,如果我叫calculateValue为每个字符串它可能返回的值,如。
“Apple”= 15,“Bee”= 21,“Super”= 3.现在我试着根据calculateValue方法中每个NSString的返回值对数组进行排序。所以然后排序阵列想像
[Bee, Apple, Super]
请参阅-sortedArrayUsingSelector:。你会通过像@selector(myComparisonMethod:)
这样的选择器。您的比较方法应返回NSComparisonResult,如NSOrderedAscending,NSOrderedDescending或NSOrderedSame。
请注意,这里假定比较方法是数组*中对象的方法*。这个问题没有具体说明,所以我认为值得指出。 – Chuck 2010-11-15 21:00:16
那么做这样的事情? – aahrens 2010-11-15 21:16:14
- (NSComparisonResult)comparePointValue:(NSString *)otherString { | | \t int thisString = [calculateValue:self]; \t int other = [calculateValue:otherString]; (其他) \t \t if \t} \t否则如果(thisString aahrens 2010-11-15 21:16:36
你是什么意思“基于返回值”?这个方法做什么/返回? – 2010-11-15 20:54:22
calculateValue只是返回一个基于字符串的int值。所以苹果可能会返回15,而能够返回13。因此,如果执行排序苹果将会出现。 – aahrens 2010-11-15 20:58:27